<SEC-DOCUMENT>0000950170-25-108070.txt : 20250813
<SEC-HEADER>0000950170-25-108070.hdr.sgml : 20250813
<ACCEPTANCE-DATETIME>20250813162933
ACCESSION NUMBER:		0000950170-25-108070
CONFORMED SUBMISSION TYPE:	10-Q
PUBLIC DOCUMENT COUNT:		65
CONFORMED PERIOD OF REPORT:	20250630
FILED AS OF DATE:		20250813
DATE AS OF CHANGE:		20250813

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			SOUNDTHINKING, INC.
		CENTRAL INDEX KEY:			0001351636
		STANDARD INDUSTRIAL CLASSIFICATION:	SERVICES-PREPACKAGED SOFTWARE [7372]
		ORGANIZATION NAME:           	06 Technology
		EIN:				470949915
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-Q
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-38107
		FILM NUMBER:		251212133

	BUSINESS ADDRESS:	
		STREET 1:		39300 CIVIC CENTER DRIVE, SUITE 300
		CITY:			FREMONT
		STATE:			CA
		ZIP:			94538
		BUSINESS PHONE:		(510) 794-3100

	MAIL ADDRESS:	
		STREET 1:		39300 CIVIC CENTER DRIVE, SUITE 300
		CITY:			FREMONT
		STATE:			CA
		ZIP:			94538

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	SHOTSPOTTER, INC
		DATE OF NAME CHANGE:	20150820

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	SHOTSPOTTER INC
		DATE OF NAME CHANGE:	20110517

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	Shotspotter Inc
		DATE OF NAME CHANGE:	20060131
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-Q
<SEQUENCE>1
<FILENAME>ssti-20250630.htm
<DESCRIPTION>10-Q
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!-- DFIN New ActiveDisclosure (SM) Inline XBRL Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2025-08-13T16:27:15.7500+00:00 -->
<!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:nonNumeric="http://www.xbrl.org/dtr/type/non-numeric" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2024-01-31" xmlns:country="http://xbrl.sec.gov/country/2025" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2025" xmlns:srt="http://fasb.org/srt/2025" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ssti="http://www.soundthinking.com/20250630" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:ecd="http://xbrl.sec.gov/ecd/2025" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2022-02-16">
 <head>
  <title>10-Q</title>
  <meta http-equiv="Content-Type" content="text/html"/>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="display:none;"><ix:header><ix:hidden><ix:nonNumeric id="F_a0d23f5c-d057-483f-9132-9c3eee662773" name="ecd:Rule10b51ArrTrmntdFlag" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" format="ixt:fixed-false">false</ix:nonNumeric><ix:nonNumeric id="F_a4356737-f295-4b80-b677-7a62f4cf3e4c" name="dei:EntityCentralIndexKey" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59">0001351636</ix:nonNumeric><ix:nonNumeric id="F_d7b22072-fa56-4d68-9692-c9ab8bb16203" name="ecd:NonRule10b51ArrAdoptedFlag" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" format="ixt:fixed-false">false</ix:nonNumeric><ix:nonNumeric id="F_56109508-8bfe-445c-aa83-8ffc47443007" name="dei:DocumentFiscalPeriodFocus" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59">Q2</ix:nonNumeric><ix:nonNumeric id="F_f4f62162-f290-4474-9ff1-9ffcebaa36a0" name="ecd:Rule10b51ArrAdoptedFlag" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" format="ixt:fixed-false">false</ix:nonNumeric><ix:nonNumeric id="F_55d0e08f-22c9-44b9-8f6a-4dc37a74efcd" name="ecd:NonRule10b51ArrTrmntdFlag" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" format="ixt:fixed-false">false</ix:nonNumeric><ix:nonNumeric id="F_1d3b709a-0e6e-4230-9ab3-d62382ff0a7e" name="dei:CurrentFiscalYearEndDate" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59">--12-31</ix:nonNumeric><ix:nonNumeric id="F_f1fa90cf-ff98-4d38-95aa-0db907901b70" name="dei:AmendmentFlag" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59">false</ix:nonNumeric><ix:nonFraction id="F_1282fe08-2987-4701-9a83-55d4cf5b1447" name="us-gaap:CommitmentsAndContingencies" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" unitRef="U_USD" xsi:nil="true"></ix:nonFraction><ix:nonFraction id="F_7a1d025b-b516-4845-85c8-fa091a304e5c" name="us-gaap:CommitmentsAndContingencies" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" unitRef="U_USD" xsi:nil="true"></ix:nonFraction><ix:nonFraction id="F_567e21a0-9fe9-456e-832c-0ff085ea3142" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" contextRef="C_a9bd1d7f-1e74-4c9f-a9a7-b45abade9ff0" unitRef="U_USD" decimals="-3" scale="3" format="ixt:num-dot-decimal">23484</ix:nonFraction><ix:nonFraction id="F_06429d32-4537-4ebc-86cc-d19d6502fed4" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" contextRef="C_0234e9fd-83e5-48bc-afc1-1f31c21fb846" unitRef="U_USD" decimals="-3" scale="3" format="ixt:num-dot-decimal">29051</ix:nonFraction><ix:nonNumeric id="F_a7f7bb7e-1cb0-40b4-bfe3-75e936ee0852" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" contextRef="C_7a929952-acd3-4997-96c2-997008fd538d">P6M</ix:nonNumeric><ix:nonNumeric id="F_8c796ba5-126f-4c87-bca3-8bedf08160f5" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" contextRef="C_5e746d1b-74a7-41a0-9a82-2d26677e3e66">P1Y</ix:nonNumeric><ix:nonNumeric id="F_2fc23526-7ba6-46e0-9ebd-5e8619fff34b" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" contextRef="C_937b7985-9731-45a1-9693-d6991a28d143">P1Y</ix:nonNumeric><ix:nonNumeric id="F_8bfe4752-f28e-4d06-a7bb-d5cf53a2fee9" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" contextRef="C_6a737722-6953-44ed-9b87-0fc316b7583e" xsi:nil="true"></ix:nonNumeric><ix:nonNumeric id="F_ac3bc36c-c6de-4913-9dbf-40bd9d6dc5bf" name="us-gaap:RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" contextRef="C_ee5af4e5-51ad-43c8-bcf9-926cb7469ead">http://fasb.org/us-gaap/2025#OtherNonoperatingIncomeExpense</ix:nonNumeric><ix:nonNumeric id="F_5676ee34-2e1d-48d3-a5fc-631384d2056b" name="us-gaap:RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" contextRef="C_fb6ff255-9e0d-49c9-9e01-1a8bdc17edb2">http://fasb.org/us-gaap/2025#OtherNonoperatingIncomeExpense</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="ssti-20250630.xsd"/></ix:references><ix:resources><xbrli:context id="C_80178e18-784b-4da8-b3cf-13e3cd9a0862"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_8345288f-b24e-4e5d-b67d-4ac2b933db67"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_84044923-7b4d-400c-940b-2dbe23977c7f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8a04306d-3613-41ea-b305-0cc45348992f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_8cb7d674-0eec-453a-ab60-6d6b89523255"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandSeventeenEquityIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-01-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_8ea297da-cc84-494a-8297-9f69a4846044"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_915e6b69-ee02-4a74-8eed-225a9f58ae75"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_91b2ce07-dfb6-4e6c-9d04-b6c524a9e011"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_937b7985-9731-45a1-9693-d6991a28d143"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2027-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_96416f51-012b-433d-9156-117993e161be"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerDurationAxis">ssti:RecognitionFromNewBillingsOfDeferredRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9671648c-3946-46b7-a28b-a179a7ecd81d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9755d019-a7ad-4033-a69e-2ca9947613cc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_976a43f2-4f77-4590-b9ab-2373be7be554"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9ad7f4bb-818b-43b8-9b0c-27ce79dc9486"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-08-09</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9c862cea-f98d-4386-bc50-979ceb737fa5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_9d509af7-a06e-4dc0-853a-d56de89ff8c0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_9ea62ede-f893-4a0d-9933-f4ac1f5f184f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a005af1a-cfe2-47e5-ab4d-96d2aa948dbf"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:NonUsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a53e737c-dbbe-44b2-a430-98a60b205182"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a5b46cc5-ee75-4f78-b9e3-5924c08e8bcd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a881e63b-df7d-4eb0-9ff0-ea878ddb79a4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">ssti:UnvestedRestrictedStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a93e5c00-a88a-4492-965c-c0cb9d594e67"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a9b2de90-9c72-4c71-9827-49a8c58b191a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_a9bd1d7f-1e74-4c9f-a9a7-b45abade9ff0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerDurationAxis">ssti:RecognitionFromBeginningDeferredRevenueBalanceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_aa784e85-d2ad-412c-aad8-fa57df245e2f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ad6c65f7-513f-4b42-8285-821d5072e5eb"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_aec290e2-452e-40e9-bb3e-9ffd13a9ac4e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_aecffb60-0955-4065-8e23-f7b6c6ef8220"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b244f1c6-23ec-487a-9bf2-4175fb678f69"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b3eb17b9-bc0f-444d-aa79-2e6620582d94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b5cf808d-510d-4881-90cf-04f5f351c7a7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b649e2f3-5249-49cc-b349-177bc0b70dd6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b6f85494-a302-4f08-9124-86d1d433ed58"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-08-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_b82221ba-d305-4d5c-b5d9-f782b830a474"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-01-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_b84ef990-8fc4-434e-9a91-9580c5f0e626"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ba843d94-b9c2-4c0a-84df-c76400a718c6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-08-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_bccbfbbd-7cda-4f8c-b810-c6dcca0ad170"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bd3184cd-0e87-444d-88ae-9fcbbbb8c01f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">ssti:AccruedExpensesAndOtherCurrentLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_bd5d9466-dc4f-43cd-8e65-e6f81348a067"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_bf8da887-1ad6-4dad-847d-0c521a42016d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_c2065de9-2d2f-4aaa-aa43-35a44822e36b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ZA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c3ed7e52-b29e-4543-a3e9-89ca9620a19d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_c44e46eb-f68f-427c-95df-22ed0f0f0042"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">ssti:UnvestedRestrictedStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c499d9d7-4eb7-4b78-a59a-9048a418b043"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandSeventeenEquityIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-05-01</xbrli:startDate><xbrli:endDate>2017-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c57d6488-7d02-4208-8f7b-6e58091c8376"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_c64f7f46-cb61-4369-9fc6-b7afa2f18503"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c7befd02-2694-424b-99d9-0515fa4da0f4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_c8f54555-5aaa-40a1-a85a-cad3e23ed1e0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:SubscriptionMaintenanceAndSupportServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_cb56e57f-04e2-47ea-a6d9-3ab4b0c4a2e8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ssti:PatentsAndIntellectualPropertyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d3224397-a478-4405-9cae-d0a7bc0bb542"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">ssti:DomesticFinancialInstitutionOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d3e03c8b-f0d4-49ce-b316-2ce5ab80f791"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d3fed023-ce0a-450c-b631-1e94b2dc6f6b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">ssti:DomesticFinancialInstitutionThreeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d70b99de-ef29-4d77-837e-3a5e9606cfab"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d802c174-e7fa-4925-b164-f60af41b245f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ssti:AcquiredSoftwareTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_d8a3f401-5d03-47da-a1dd-dd4700aefc11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d8c8ff70-8c1e-4636-90df-209e9bb41ad1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d941df6c-f81f-4882-a6e7-ac57265797f8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">ssti:StockRepurchaseProgramMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_d9ea2a4c-a7c9-4999-9c09-7780c0d2dd13"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:SouthAmericaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_da16747c-e84d-413d-8f6d-ae00ad01f35f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandSeventeenEquityIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_dc085326-df1d-4bca-869c-7c0666de4fd2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_dd1e3ab7-23ba-44dc-87b4-76262ae7986f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_dda0052b-510e-4f91-9dc3-73cdc2c7440a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ZA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ddb499ef-e435-4cab-afb6-2b74e0ca95d8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:BS</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_dfaa0b2a-742a-40b6-972e-3a8f2f0452db"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e2b51864-980d-412b-86f9-b25a05ed43df"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e62e03a2-7ede-44a6-b2b4-d46c8b390dee"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e67bcbab-2624-4827-9322-ca0e84ef22a0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:BS</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e6fb1587-9845-4286-be93-e93b57f7c145"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:BS</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_e7ba679f-92fc-4894-bcb9-6aee2793c21a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ea18427b-53e5-4163-b26f-7f56a728db44"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_ee5af4e5-51ad-43c8-bcf9-926cb7469ead"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_efdaef5b-5b12-4dca-b5b7-438ed2bd600c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_efff8137-a1c7-4c57-a0b2-029672737b52"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">ssti:StockRepurchaseProgramMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f15479da-3aec-4335-9189-a02717a927bd"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f400f9bb-9a06-4257-be98-0ebe26ee6562"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f41fd3f7-c39c-4d45-8d83-44a10cce6a89"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f95af2f4-3012-4cc2-924d-d40baa6e5112"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f96e3db2-b7dc-492f-b625-42945641180e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_f9db51c5-d33a-41ea-9880-5f986f6fa757"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_f9f6333b-04ec-42ae-9629-1ce4a459849a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_faab6c1c-3ec0-4211-a050-a91701eb8e2c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_fb6ff255-9e0d-49c9-9e01-1a8bdc17edb2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">ssti:LeaseTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_003d93ef-a4d4-43c0-8262-a0dfd7071020"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_00788857-046d-4c69-aa56-c18129ececda"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0234e9fd-83e5-48bc-afc1-1f31c21fb846"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerDurationAxis">ssti:RecognitionFromBeginningDeferredRevenueBalanceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_02ead27e-6a8e-41d6-ae28-361e2f9ec745"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-05-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_046126a1-3c94-4af1-8c5c-9801b50dc97c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:ProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0b619edc-e8fa-4446-a6d2-12ad05b44d27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_0d796143-eb6d-410a-b76c-2b68e5f1b5f4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:ProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0dabec57-30b9-451f-902e-82daad6dee8b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_0f7a9a37-9214-4159-98ad-f4a05ae91116"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_0f921dab-def0-487e-ba70-10f45cdd60d9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_11c952fc-f218-45d1-8ecb-1454c429f16a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">ssti:UnvestedRestrictedStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_152ee14b-042e-4ec9-b803-f42f5b52286c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_15e7cb42-5ba0-4619-9a77-488368df9c29"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:PSU-BasedPerformanceBonusPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_166b3beb-19d4-44aa-9ab6-0df3e63a7b5a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_179523cc-6537-430e-abea-d535e4dac07a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_1896f14a-ab9b-4a3c-9182-f094c6bccbb8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_19584243-d9d6-41cf-8f38-a45ef1156558"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_215c1c9a-7dc0-4581-a82e-4d67cd225feb"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">ssti:UnvestedRestrictedStockUnitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_222eed63-1852-43c2-aeb8-370555ad7df7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-05-01</xbrli:startDate><xbrli:endDate>2017-05-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_22aa61a3-8fa4-42c7-b408-70251d47271f"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_23af2f6d-72c9-4042-bbd5-52b6b7bcc0b6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ZA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_264d7113-d930-418b-8965-90b459e35062"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_27fec0a5-2d60-44c0-9d6e-7e43578f994d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:BS</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2a47e2d2-2a27-4683-a6ce-ecf2fb10345c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_2e8acf49-5b0f-4ec6-9d54-86be52d90e50"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">ssti:SoundthinkingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_30b254ec-8bda-46d1-bea5-ce715bb8ad01"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_32b8e83f-80a4-49d4-87d5-467104f9eb29"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_331903be-002f-464f-9997-7eca4ed0a3ae"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ssti:PatentsAndIntellectualPropertyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_33e41d3e-87d3-497f-a430-566dae1e6dde"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_351a4708-d169-4833-a2ad-3c11985baa77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_351b3353-8387-41c8-aaf4-e3ebbdc32ee4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_38ec3cda-b94f-4571-bc72-ff12471e4a3e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:PSU-BasedPerformanceBonusPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-02-01</xbrli:startDate><xbrli:endDate>2025-02-28</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_39d6be9e-a9cf-476e-86b6-6f3e2a5cccb5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ssti:AcquiredSoftwareTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_3c079ac5-86da-4a71-beff-90d2eacf323d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_3ead49f6-7b56-492b-ae09-7a3382b38dc5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_3fe7103e-4236-4c29-ad82-c866c95265dc"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerDurationAxis">ssti:RecognitionFromNewBillingsOfDeferredRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_41e5a601-8395-4d04-877b-e251abf8096e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_42592731-dd58-4d1e-a772-4aad8e45dd8a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">ssti:SoundthinkingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4365f23e-26c5-4839-ad78-f15badd94069"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_44896582-2b1e-43a6-8e05-605d41df94b8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ZA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_482c1ac1-0b50-47a3-96ba-d25d4eed94a8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:ProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4857efeb-ac76-497f-9467-da928e644e40"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:SubscriptionMaintenanceAndSupportServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_49396b45-f68b-49b4-9d4b-7b28e5495469"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_4a6effc2-db48-4ed0-bc19-ca91fdc64c5c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4b28ba2d-f633-4bdf-8f0a-fb61e710f0f4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4bb40e2c-76d4-4c6d-b476-8b2fe247ccc5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:SubscriptionMaintenanceAndSupportServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4d2f56af-f39c-42e6-b0c1-a3f8fdfe2033"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:SubscriptionMaintenanceAndSupportServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4ea795a4-c3a9-46c6-81e4-e011b345ce17"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandSeventeenEquityIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-01-01</xbrli:startDate><xbrli:endDate>2017-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_4f608cb9-9280-445a-ad3b-70370903c390"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:SouthAmericaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_50634026-1f9f-4d9f-9db2-a1ced29f5283"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_509a0569-ae8a-4dd7-a199-25abd7d4b5db"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-03-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_50d9bb12-07c5-4a66-a1a2-f5d4a776d234"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_515ef1c5-8683-4290-950e-82fd3816c134"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_5181a2e5-f233-48ac-a043-77203cfb9c0c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_522f5354-f707-423d-a4ef-92e2139fc49c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5a14aca2-5d35-4f1e-800c-0bc1ec79a40e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5d6800f9-562f-4264-b223-b9e406f05df8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_5e746d1b-74a7-41a0-9a82-2d26677e3e66"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_63e472be-2a49-4250-bef6-e201d8efb971"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6583b95c-af84-4a6e-9ed9-c2d6690152f7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_6708ae2b-8c97-48c1-8004-36c3543b88a1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6754cceb-ddda-46d7-bce6-3babd8ea72b1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_68af483f-b9d5-413f-88c0-157eae19d9f0"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:PSU-BasedPerformanceBonusPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6a162941-7409-4632-9530-98f1f94edcd2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_6a737722-6953-44ed-9b87-0fc316b7583e"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2028-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_6e80f8e2-8d55-4935-bdd6-4752c95a09d1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:ProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_70a616cb-4fef-4072-ab45-e9a13c538bf2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_72be6c25-daa0-44d6-bfd9-63a676764a38"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">ssti:DomesticFinancialInstitutionTwoMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_762ff647-a9f4-4b74-aa5c-acc10546ba06"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_76ad5420-881e-425b-81a7-7cdb896dfee6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_76e0845d-526c-4a22-87b4-312b6ec710a9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_76eac33a-5756-4803-9f1a-277c3974053a"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_77ec4fa8-fb33-4d07-9983-a7629bc33655"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7a41e0b3-0124-435c-a092-ea5f469f7bea"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7a929952-acd3-4997-96c2-997008fd538d"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-07-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7ad02a42-8716-4e47-aea3-54300690d968"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-04-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7b0882ee-fb75-4965-babb-4e2a0276df3b"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">ssti:SoundthinkingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-04-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7b580e4b-0c13-4633-9238-a898326d3e82"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="C_7dd5e880-15ee-439c-a081-48807c99f4d9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7f307dc4-8f88-42cf-845e-32135157d801"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">ssti:SoundthinkingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="C_7f9f80e7-661d-49bf-b9fb-979f3caa3301"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001351636</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="U_USDollarShare"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="U_pure"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="U_Financialinstitution"><xbrli:measure>ssti:Financialinstitution</xbrli:measure></xbrli:unit><xbrli:unit id="U_Universities"><xbrli:measure>ssti:Universities</xbrli:measure></xbrli:unit><xbrli:unit id="U_shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="U_Customers"><xbrli:measure>ssti:Customers</xbrli:measure></xbrli:unit><xbrli:unit id="U_Agencies"><xbrli:measure>ssti:Agencies</xbrli:measure></xbrli:unit><xbrli:unit id="U_City"><xbrli:measure>ssti:City</xbrli:measure></xbrli:unit><xbrli:unit id="U_Subsidiary"><xbrli:measure>ssti:Subsidiary</xbrli:measure></xbrli:unit><xbrli:unit id="U_USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="U_Customer"><xbrli:measure>ssti:Customer</xbrli:measure></xbrli:unit></ix:resources></ix:header></div>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:2.25pt double;text-align:left;"><span style="white-space:pre-wrap;font-size:1pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:1pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">UNITED STATES</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SECURITIES AND EXCHANGE COMMISSION</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">WASHINGTON, DC 20549</span></p><p style="margin-left:35.187%;padding-bottom:1pt;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:35.185%;text-align:center;"><span style="white-space:pre-wrap;font-size:3pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">FORM </span><span style="font-size:16pt;font-family:Times New Roman;"><ix:nonNumeric id="F_521abeb6-c83c-4b0c-858e-c71d7af71390" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:DocumentType"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">10-Q</span></ix:nonNumeric></span></p><p style="margin-left:35.187%;padding-bottom:1pt;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:35.185%;text-align:center;"><span style="white-space:pre-wrap;font-size:3pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(Mark One)</span></p><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_b828655e-6b70-4305-8ec3-526d2b6202b1" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:DocumentQuarterlyReport" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#9746;</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">    </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For the quarterly period ended </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_a3353a63-02a0-4917-9891-2a5e82e77dac" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_64b5f829-8774-48dd-82ca-6f1ad00b6001" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:DocumentFiscalYearFocus"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2025</span></ix:nonNumeric></span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">OR</span></p><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_7fcf4402-fc3c-4aed-955c-8b56555100e4" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">    </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For the transition period from               to</span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Commission File Number: </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_09b28764-3d28-4aa6-b800-1b8e81175eb3" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityFileNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">001-38107</span></ix:nonNumeric></span></p><p style="margin-left:35.187%;padding-bottom:1pt;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:35.185%;text-align:center;"><span style="white-space:pre-wrap;font-size:3pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:24pt;font-family:Times New Roman;"><ix:nonNumeric id="F_3bac9fa0-c8b1-4d90-a0c3-25cee32e2ab2" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityRegistrantName"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:24pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc.</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(Exact Name of Registrant as Specified in its Charter)</span></p><p style="margin-left:35.187%;padding-bottom:1pt;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:0;border-bottom:0.5pt solid;margin-right:35.185%;text-align:center;"><span style="white-space:pre-wrap;font-size:3pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:50%;box-sizing:content-box;"/>
     <td style="width:50%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_c52ab1b9-0799-4d77-905f-0e5906183442" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Delaware</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_76c0bc89-ae92-4324-b30a-7464d9aae141" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityTaxIdentificationNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">47-0949915</span></ix:nonNumeric></span></p></td>
    </tr>
    <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">(State or other jurisdiction of</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0.75pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">incorporation or organization)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">(I.R.S. Employer<br/>Identification No.)</span></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_ca46e7b1-1814-4325-8d9c-4b829aa968b3" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityAddressAddressLine1"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">39300 Civic Center Dr.</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">, </span><span><ix:nonNumeric id="F_15849dd5-eca3-4fd3-9554-3c9967baa593" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityAddressAddressLine2"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Suite 300</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_212e2df4-1bc9-41e7-b975-997c69c47196" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityAddressCityOrTown"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Fremont</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">, </span><span><ix:nonNumeric id="F_79a393d7-64ad-4fe3-b9bd-b942e33747e8" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">California</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_7ba9fd0a-b6e5-4ccb-b401-f21bc21caaa5" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityAddressPostalZipCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">94538</span></ix:nonNumeric></span></p></td>
    </tr>
    <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">(Address of principal executive offices)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">(Zip Code)</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Registrant&#8217;s telephone number, including area code: (</span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_c4dd028c-9487-40f4-bca5-1d41461f23c0" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:CityAreaCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">510</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">) </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_e05a60a2-4f32-41f7-a769-2731c93519b7" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:LocalPhoneNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">794-3100</span></ix:nonNumeric></span></p><p style="margin-left:35.187%;padding-bottom:1pt;font-size:10pt;margin-top:3pt;font-family:Times New Roman;margin-bottom:6pt;border-bottom:0.5pt solid;margin-right:35.185%;text-align:justify;"><span style="white-space:pre-wrap;font-size:3pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Securities registered pursuant to Section 12(b) of the Act:</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:33.333%;box-sizing:content-box;"/>
     <td style="width:33.333%;box-sizing:content-box;"/>
     <td style="width:33.333%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="border-top:0.5pt solid #000000;padding-top:0in;border-right:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;border-left:0.5pt solid #000000;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Title of each class</span></p></td>
     <td style="border-top:0.5pt solid #000000;padding-top:0in;border-right:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Trading Symbol(s)</span></p></td>
     <td style="border-top:0.5pt solid #000000;padding-top:0in;border-right:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Name of each exchange on which registered</span></p></td>
    </tr>
    <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0in;border-right:0.5pt solid #000000;border-left:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;border-right:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;border-right:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:9pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0in;border-right:0.5pt solid #000000;border-left:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_e1a64e35-7ebf-4d74-a233-d24454a2e497" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:Security12bTitle"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Common stock, par value $0.005 per share</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0in;border-right:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_2d1a296d-af2a-4630-b277-efa2a59b6caf" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:TradingSymbol"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">SSTI</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0in;border-right:0.5pt solid #000000;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-kerning:none;min-width:fit-content;">The </span><span style="font-size:9pt;"><ix:nonNumeric id="F_dd050567-44bf-4374-b206-ad8a02438acf" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Nasdaq</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-kerning:none;min-width:fit-content;">&#160;Capital Market</span></p></td>
    </tr>
   </table><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">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 Exchange 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.     </span><span style="font-size:9pt;font-family:Times New Roman;"><ix:nonNumeric id="F_55d57960-39d7-4710-8097-e5d6ca542fba" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityCurrentReportingStatus"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Yes</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  &#9746;    No  &#9744;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">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 (&#167; 232.405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).    </span><span style="font-size:9pt;font-family:Times New Roman;"><ix:nonNumeric id="F_d681d54d-c05b-4e29-8cee-f3f8cae5b743" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityInteractiveDataCurrent"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Yes</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  &#9746;    No &#9744;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, smaller reporting company, or an emerging growth company. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company,&#8221; and &#8220;emerging growth company&#8221; in Rule 12b-2 of the Exchange Act.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:21.318%;box-sizing:content-box;"/>
     <td style="width:1.005%;box-sizing:content-box;"/>
     <td style="width:52.562%;box-sizing:content-box;"/>
     <td style="width:1.005%;box-sizing:content-box;"/>
     <td style="width:21.479%;box-sizing:content-box;"/>
     <td style="width:1.005%;box-sizing:content-box;"/>
     <td style="width:1.627%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:10.8pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Large accelerated filer</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#9744;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accelerated filer</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#9744;</span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;"><ix:nonNumeric id="F_d567d8d1-7be1-452a-9856-734f8e3ac8f0" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Non-accelerated filer</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#9746;</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Smaller reporting company</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;"><ix:nonNumeric id="F_4c5d8df3-be91-4149-87c9-3ae3b319ceaa" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntitySmallBusiness" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#9746;</span></ix:nonNumeric></span></p></td>
    </tr>
    <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Emerging growth company</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;"><ix:nonNumeric id="F_d065f523-8348-4eaf-999a-4dca71d0ed99" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityEmergingGrowthCompany" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:9pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Wingdings',serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">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. &#9744;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).    Yes  &#9744;    No  </span><span style="font-size:9pt;font-family:Times New Roman;"><ix:nonNumeric id="F_c541eee5-5786-415f-8f75-7564425e1cce" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="dei:EntityShellCompany" format="ixt:fixed-false"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#9746;</span></ix:nonNumeric></span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As of August 6, 2025 the registrant had </span><span style="font-size:9pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a51a8072-6c1d-44e5-9c7a-210d69e05961" contextRef="C_9ad7f4bb-818b-43b8-9b0c-27ce79dc9486" name="dei:EntityCommonStockSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,791,251</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">shares of common stock, $0.005 par value per share, outstanding.</span></p><p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:2.25pt double;text-align:left;"><span style="white-space:pre-wrap;font-size:3pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Table of Contents</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:8.86%;box-sizing:content-box;"/>
     <td style="width:81.58%;box-sizing:content-box;"/>
     <td style="width:9.56%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:6.85pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.267%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Page</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">PART I.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#part_i_financial_information"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">FINANCIAL INFORMATION</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Item 1.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#item_1_condensed_consolidated_financial_"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Condensed Consolidated Financial Statements</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:6.85pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.267%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#condensed_consolidated_balance_sheets"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Condensed Consolidated Balance Sheets</span><span style="color:#0000ff;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:6.85pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.267%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;text-indent:13.7pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="text-indent:-2.599%;padding-left:2.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#condensed_consolidated_statements_operat"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Condensed Consolidated Statements of Operations</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:6.85pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.267%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;text-indent:13.7pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="text-indent:-2.599%;padding-left:2.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#condensed_consolidated_statements_compre"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Condensed Consolidated Statements of Comprehensive Loss</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:6.85pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.267%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;text-indent:13.7pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="text-indent:-2.599%;padding-left:2.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#condensed_consolidated_statements_equity"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Condensed Consolidated Statements of Stockholders&#8217; Equity</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:6.85pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.267%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;text-indent:13.7pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="text-indent:-2.599%;padding-left:2.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#condensed_consolidated_statements_cash_f"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Condensed Consolidated Statements of Cash Flows</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:6.85pt;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.267%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#notes_to_condensed_consolidated_financia"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Notes to Condensed Consolidated Financial Statements</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Item 2.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#managements_discussion_analysis_financia"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Item 3.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#item_3"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Qualitative and Quantitative Disclosures About Market Risk</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Item 4.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#item_4_controls_procedures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Controls and Procedures</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">PART II.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">OTHER INFORMATION</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Item 1</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Legal Proceedings</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">32</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Item 1A.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Risk Factors</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">32</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Item 2.</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#item_2_unregistered_2"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Unregistered Sales of Equity Securities and Use of Proceeds</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">61</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Item 6.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="#item_6_exhibits"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Exhibits</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">61</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#exhibit_index"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Exhibit Index</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">62</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="#signatures"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Signatures</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">63</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:-1.902%;padding-left:1.867%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:-1.902%;padding-left:1.867%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">1</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="part_i_financial_information"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">PART I. FINANCI</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">AL INFORMATION</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="item_1_condensed_consolidated_financial_"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Item 1. 	Condensed Consolid</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">ated Financial Statements</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_balance_sheets"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Condensed Consolida</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">ted Balance Sheets</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(In thousands, except share and per share data)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:63.96%;box-sizing:content-box;"/>
     <td style="width:1.96%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:14.66%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.96%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:13.46%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">(unaudited)</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Assets</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Current assets</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cash and cash equivalents</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8b3b9951-154a-4bda-b0c1-f585c8416ed9" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,950</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ecad8ae1-78a0-4859-8d15-50aab54c09b6" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,183</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accounts receivable and contract assets, net</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e1a3a426-4b43-4f26-b984-aa984321429a" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="ssti:AccountsReceivableAndContractAssetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30,743</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_74d53682-bdfb-4785-adbc-4a8b1caf10ce" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="ssti:AccountsReceivableAndContractAssetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,464</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Prepaid expenses and other current assets</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bdea637e-72c2-44c2-9879-198994937aff" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,816</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4fe57b77-f6f4-4313-9f00-15c940e12c86" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,881</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total current assets</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8b9f7c9f-e71d-4398-a08f-b80cf09e6002" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">44,509</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fc3a1f66-06a1-4310-9065-90b969b6479b" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">43,528</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Property and equipment, net</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e7de688a-c1d8-4748-bfa6-58129488611a" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:PropertyPlantAndEquipmentNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,915</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a0576b53-0032-44b4-8976-a9fb745b5535" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:PropertyPlantAndEquipmentNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20,131</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating lease right-of-use assets</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a0f8a5f6-72c6-4803-a7a7-53c33942cab1" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,643</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f5ddf363-93bb-4999-83e3-c3668c4e39ba" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:OperatingLeaseRightOfUseAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,878</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Goodwill</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d303793b-77d0-4e46-8981-2a2032ad6433" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,213</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_23773a5a-3145-4236-b2d3-4ad3495ca7a7" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:Goodwill" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,213</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Intangible assets, net</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0f17293c-7ab3-424d-9b67-6769d350bfec" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">31,266</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8aacc349-bfe6-487b-a617-52e92061864a" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">33,182</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other assets</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3249cea4-31e7-4d28-8cf2-523fa1c65c86" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,230</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2151f485-f708-4876-b9d7-a4efd5162c43" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,861</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:2.773%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total assets</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c1999d76-95c7-4098-89b8-098f234434e4" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">134,776</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d578f989-5d8d-42e1-8e5a-2b2bbfe6698e" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:Assets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">136,793</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Liabilities and Stockholders&#8217; Equity</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Current liabilities</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accounts payable</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_317dd3ef-357c-475b-aaad-cc13f9f43f14" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AccountsPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,348</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c8cdd243-0864-4570-a481-bb7dd0ab3fef" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AccountsPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,442</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accrued expenses and other current liabilities</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_aff99a43-cf03-402e-9d28-a6a0f2ddf002" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,153</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c7ccc980-627f-4ac5-937e-70d51b306cd7" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,216</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Line of credit</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_57d30c24-bbd6-4c31-b0ba-5e8e5675fdfb" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:LinesOfCreditCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,000</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9f2ea3ee-95ae-4404-a9ec-86bc0eb3aee0" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:LinesOfCreditCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,000</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred revenue, short-term</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3145ef1f-d8f4-43ed-8955-4ff4aeb6ac2e" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,479</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e4a044c4-686a-4934-a498-fc2a9920be65" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:ContractWithCustomerLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">38,401</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total current liabilities</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_573185e0-03e5-473e-baef-57136f42949a" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:LiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">52,980</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_27f0ff4d-d230-4c9e-b8d2-727809f36a76" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:LiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">56,059</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred revenue, long-term</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3346a21d-0f71-4e4b-af55-2486bc55c48c" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,051</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bd846478-5a71-4172-9d95-2fd94edfba60" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:ContractWithCustomerLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,832</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred tax liability</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7f36e45a-5ff7-481e-ba41-81803a73f75b" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,378</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_449f0e7e-19e3-42c1-9b1b-05e1a25d19a4" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,361</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating lease liabilities, net of current portion</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1df03795-2edf-4e70-b525-94bc7db97f7c" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">846</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6507deb7-b6ef-4237-aaa2-d971399a2400" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:OperatingLeaseLiabilityNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,142</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:2.773%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total liabilities</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7746c11b-ae2a-41ff-9071-a959e70fe155" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:Liabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">60,255</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e2320c70-fe06-4126-983d-cac160565985" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:Liabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64,394</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_1282fe08-2987-4701-9a83-55d4cf5b1447;"><span style="-sec-ix-hidden:F_7a1d025b-b516-4845-85c8-fa091a304e5c;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Commitments and contingencies (Note 13)</span></span></span></span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Stockholders&#8217; equity</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Common stock: $</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4710bd00-ed68-4a22-bf11-11f6cf77c8d7" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:CommonStockParOrStatedValuePerShare" unitRef="U_USDollarShare" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_e64a5a6a-e425-42e9-a45b-a8d886aec630" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:CommonStockParOrStatedValuePerShare" unitRef="U_USDollarShare" decimals="INF" format="ixt:num-dot-decimal">0.005</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;par value; </span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0397f24b-c898-4e19-a6b4-b0ed6ee9980a" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:CommonStockSharesAuthorized" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_8d6f6719-06de-4197-82a8-c066c57c13ba" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:CommonStockSharesAuthorized" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">500,000,000</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;shares authorized;<br/>&#160;&#160;&#160;</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_182b18c1-ac82-4b2b-b2fd-2ce42c544271" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:CommonStockSharesIssued" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_bc16a179-e50c-4dc6-b4ed-f7ad0ed24051" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:CommonStockSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,788,631</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;and </span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_85983fe6-3edf-49fb-99cb-1775a1d49f14" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:CommonStockSharesIssued" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_98760b7d-df73-4f77-a605-319826d435c4" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:CommonStockSharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,634,485</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;shares issued and outstanding as of<br/>June 30, 2025 and December 31, 2024, respectively</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cf7753a8-5fb2-44a0-99a1-6fc2d229f425" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:CommonStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_367b658f-ee5c-49f4-9d06-29669ec4f992" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:CommonStockValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Additional paid-in capital</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1996b06f-c797-4c62-89d4-4863d5c632f0" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AdditionalPaidInCapitalCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">183,719</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_53fd8aae-5476-4b0d-bca9-55c6d66f1861" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AdditionalPaidInCapitalCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">177,021</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accumulated deficit</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_89278e2a-94ac-497d-91fd-9e720912ff14" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:RetainedEarningsAccumulatedDeficit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">108,902</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8421c248-9ee4-46b6-9312-a327aae0e551" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:RetainedEarningsAccumulatedDeficit" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">104,298</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accumulated other comprehensive loss</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_586e371a-146e-4deb-b23e-fba915090fbb" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">360</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d82499a-1731-4583-ad5b-580d880e2b73" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">388</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:2.773%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total stockholders&#8217; equity</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_48597cf9-60cc-493d-8c52-89fdbf7f2f8b" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">74,521</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_eccabb67-3f1e-404d-a150-2d54950afe93" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">72,399</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="margin-left:2.773%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total liabilities and stockholders&#8217; equity</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e152540e-220b-487b-85de-2ddb818fac9c" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:LiabilitiesAndStockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">134,776</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8b4ce7a5-1ead-4eaf-ac75-7ec2575cc90f" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:LiabilitiesAndStockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">136,793</ix:nonFraction></span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">See accompanying notes to condensed consolidated financial statements.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_operat"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Condensed Consolidated S</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">tatements of Operations</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(In thousands, except share and per share data)</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:49.75%;box-sizing:content-box;"/>
     <td style="width:1.04%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.522%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.04%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.522%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.04%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.522%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.04%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.522%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Revenues</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_533fa003-d9fa-4032-b053-97b3fd9efa63" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,889</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_36c58680-0dd4-48c6-bbbe-7d63faea991b" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26,960</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c139253d-d8b5-4687-8d28-f4d4ea156c37" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">54,238</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_77ab88e0-b450-4dee-8de6-a3b7d1b370e8" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">52,370</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Costs</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cost of revenues</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8016b046-e9cf-489c-9912-6ac788343b54" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,058</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ac66ed2a-c595-43f6-abca-1282885b0cc7" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,781</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_05c264cd-65f7-4b41-b824-cd28c05b7475" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,776</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1f46db23-9a70-46a4-be15-17fa0534201b" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:CostOfGoodsAndServicesSold" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">21,052</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Impairment of property and equipment</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e61f38a5-2eaf-4f31-b8a9-0d1b61808e97" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="ssti:ImpairmentOfPropertyAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">36</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d42f6ac-ce8f-4f46-ac8c-79929819fdcc" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="ssti:ImpairmentOfPropertyAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">106</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_76776c04-f00e-4f73-a527-7d151d953029" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:ImpairmentOfPropertyAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">73</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_042272cd-2a70-4902-8ac8-9f941053f208" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="ssti:ImpairmentOfPropertyAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">358</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total costs</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fe9ff960-777e-40eb-bb23-2d62d1470136" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:CostOfRevenue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,094</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_67a1b9ba-53b9-42be-8fc9-a2b011c90719" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:CostOfRevenue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,887</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_67567bde-541c-42c8-a690-d300616efd2d" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:CostOfRevenue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">23,849</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ddb9bc86-33b8-4a7c-83ff-9844446098e6" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:CostOfRevenue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">21,410</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Gross profit</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a22a97d3-73f4-4144-a004-6add03fc99f9" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,795</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_aeb62611-058c-478b-9b51-2a5be5feb00f" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,073</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3aaf8542-8c94-4494-ae61-f32270fe029e" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30,389</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5056fe32-e3e8-44a0-b4bb-7cb2e52ea495" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:GrossProfit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30,960</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating expenses</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a8c5ea20-edcf-42a3-96ad-971e2966ee7a" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,525</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f3cbdd17-6211-4bcd-ba4f-fb952014f8c1" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,322</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f51c636b-dcde-48f6-8544-b75f10a69e1b" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,784</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f96c9078-edf6-4df2-a180-beee4b6a35bb" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:SellingAndMarketingExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,434</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7b667971-9983-451e-bb4b-6943a86291de" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,746</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a8654a4e-4d9a-4b35-9a4c-724830ea478f" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,468</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c1491e9c-187f-4208-b9ca-ae2beb028f1b" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,811</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dab8bfa7-01e3-45b3-9ac9-9c28b07ffd21" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ResearchAndDevelopmentExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,028</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_669aee45-6711-4efc-9cd4-f5822a43b445" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,467</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_87a9ce75-d5b5-411d-a392-4acacb1979f3" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,880</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4501a71b-889e-48d2-9f71-e727f69d9345" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,941</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_18b73f3c-ff85-48b4-8144-c0d9f277904d" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:GeneralAndAdministrativeExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,710</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Change in fair value of contingent consideration</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4ef8be6f-aca7-4b36-a811-5983cfd9997b" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="ssti:FairValueAdjustmentOfContingentConsideration" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">554</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d5508c0d-42e7-4d3a-ae92-e6713e95908c" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="ssti:FairValueAdjustmentOfContingentConsideration" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">554</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total operating expenses</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7d143f3a-ceca-47dc-b5f0-9daea8c0a783" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,738</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0dff0e69-9171-4da3-9697-ef043c4d61df" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,116</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bebc6eb1-7a17-45d3-a44f-b892942c083f" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">34,536</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_34294015-6d92-43c9-983b-4e27471aa880" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:OperatingExpenses" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">33,618</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b09dcc7a-d84f-4e7e-ab0c-60ee4a007b2c" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,943</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6104ed59-87fa-4296-a5ca-643ec152ff56" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">43</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8ab557ca-5539-4315-9427-52c1f76029cd" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,147</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1ee8321f-498b-4013-939a-f6a432937b75" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:OperatingIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,658</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other expense, net</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">  </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Interest expense, net</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_50697557-74e5-4bf1-94c4-ea72390cdee0" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:InterestIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">20</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3226029a-73ba-449c-ab86-469babfa365e" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:InterestIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">61</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_01420ed2-c7e3-4f45-86f6-7b1cf2d2abef" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:InterestIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">32</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a7f59e81-813d-44c1-aac0-3fedb2cfbe58" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:InterestIncomeExpenseNonoperatingNet" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">183</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other expense, net</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_71e0b4f4-0890-4b2e-92a7-f29da716c015" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:OtherNonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">71</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_817e7d1c-3652-4aaa-a4eb-3e946b6e7d8a" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:OtherNonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">414</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d1768b0e-5bf6-46a2-8516-1a7cdeec4872" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:OtherNonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">239</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_17e5ba36-c78d-4379-8d15-ada9b9ce780d" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:OtherNonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">472</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total other expense, net</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a1323e78-aa87-4e5b-8df4-21a41a9649a5" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:NonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">91</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3d38520c-cb68-4b32-95f8-c8436397df5e" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:NonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">475</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_767366c5-cc3a-4fad-83fe-fc0e42347bfc" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:NonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">271</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ef9db056-271f-469c-baf8-718bfd42d818" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:NonoperatingIncomeExpense" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">655</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Loss before income taxes</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5f7e7ed1-7604-48ca-ad1e-224b6c237ef7" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,034</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d1d4a8a-7c09-46c1-b5e9-72765ebac1e3" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">518</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_03f53f06-a24e-4d1a-ae4c-f5897f4a2bee" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,418</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d744b02-2592-4d9c-a15b-bad620f3e989" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,313</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Provision for income taxes</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1a3f210d-d3e8-4d40-b0ca-e7e5d2f6da9f" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">86</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b24dde32-0415-469f-94d5-c4ef2543ce70" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">234</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4c17938d-7215-4b84-abb7-a19cae746695" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">186</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c0f95f4d-51e4-43a3-9071-4fb39849b399" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:IncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">348</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_108fb45c-962b-4892-960a-7f57cef160c3" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,120</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ffb1f16d-ba16-4ebb-b854-2ac233d6553f" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">752</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2437c387-80cd-4298-92f1-c485c25bddf9" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,604</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_65f3207c-eca9-47cc-81c6-35d5349b7b37" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,661</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss per share, basic and diluted</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d462aa5f-8cc8-4697-bc39-012115a4386d" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:EarningsPerShareBasic" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_1c69d223-a4b3-4f6e-9b1a-8f3f9d1b463c" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:EarningsPerShareDiluted" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.24</ix:nonFraction></ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f253661c-72ba-4803-832c-73ee7671fa89" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:EarningsPerShareBasic" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_4c4ef667-a61f-4e5e-a5aa-aa13f50e28a7" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:EarningsPerShareDiluted" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.06</ix:nonFraction></ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_23461217-6939-4ada-99ad-a92d267c3399" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:EarningsPerShareBasic" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_4fe28600-7bec-4017-a2e9-dc056c860d3c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:EarningsPerShareDiluted" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.36</ix:nonFraction></ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_224d4002-57fc-4e22-8c63-1134f753a021" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:EarningsPerShareBasic" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_ec089731-5273-4dda-b62c-e98d2a65c19e" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:EarningsPerShareDiluted" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.29</ix:nonFraction></ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Weighted-average shares used in computing net loss per share, basic and diluted</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_de614086-f94d-4131-b33d-74de2e41726d" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal"><ix:nonFraction id="F_98640181-fa27-46b3-9a9e-58c60f8f77c8" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">12,712,191</ix:nonFraction></ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5cb90a27-45fc-4d9a-81f0-b12ce25c12d9" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal"><ix:nonFraction id="F_d2da4ac3-7577-4412-af3e-7633be44ffd4" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">12,792,952</ix:nonFraction></ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d59ab48f-fbe2-4d56-a0d6-286ead998fc8" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal"><ix:nonFraction id="F_a6273e75-ae2c-4fd3-93f4-e4e6b92b4a01" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">12,680,456</ix:nonFraction></ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_830a008b-230f-4a50-a630-76246f11ddbe" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal"><ix:nonFraction id="F_29982eba-c5dd-4c21-9dbd-a1a86c12f283" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">12,781,910</ix:nonFraction></ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">See accompanying notes to condensed consolidated financial statements.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">3</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_compre"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Condensed Consolidated State</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">ments of Comprehensive Loss</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(In thousands)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:40.772%;box-sizing:content-box;"/>
     <td style="width:1.66%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:11.718%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.66%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:10.958%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.66%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:10.958%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.66%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:10.958%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_60f5da7d-146a-4ac1-b7ec-2eb7a947ccda" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,120</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_92628ba9-eaf5-49d3-bf95-3f9c6f7659d6" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">752</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5c310653-e407-4946-8a7b-b18832a35ecf" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,604</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_38adc636-4d9a-4036-940a-11b17316a9f0" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,661</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other comprehensive loss:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Change in foreign currency translation adjustment, net of taxes</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_28ce2d7c-0de1-41ae-a189-ae2905662147" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6eb6de81-0e0a-40bf-87f0-a96103560d92" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1ec7ee5b-9836-4c66-8bae-6b46e64e75c4" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">28</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b7b0027e-59ba-43dc-ace8-8e6190d7b86c" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Comprehensive loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_27105d31-fd7a-4a22-a9c6-7adcf56f3fa3" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:ComprehensiveIncomeNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,118</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_abac6b95-0c24-4819-a541-2507df547e14" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:ComprehensiveIncomeNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">740</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9019b562-0e32-49b4-bfb6-96772b400200" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ComprehensiveIncomeNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,576</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5b03215d-e479-4ad1-89ac-a5b77cb4f4ff" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ComprehensiveIncomeNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,665</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">See accompanying notes to condensed consolidated financial statements.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">4</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_equity"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Condensed Consolidated Stat</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">ements of Stockholders&#8217; Equity</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(In thousands, except share data)</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(Unaudited)</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:33.8%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8.08%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:6.86%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8.98%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7.76%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:7pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Common Stock</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Additional<br/>Paid-in</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated<br/>Other<br/>Comprehensive</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Total<br/>Stockholders&#8217;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:7pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Shares</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Par Value</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Capital</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Deficit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Loss</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Equity</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Balance at January 1, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1b9f25b3-4c3c-4def-9e85-2b368f211c84" contextRef="C_70a616cb-4fef-4072-ab45-e9a13c538bf2" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,634,485</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_372c7a64-0a56-4478-bbb4-9f5575015f62" contextRef="C_70a616cb-4fef-4072-ab45-e9a13c538bf2" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_942abf4f-2e63-424b-8c96-fa95253c7092" contextRef="C_d3e03c8b-f0d4-49ce-b316-2ce5ab80f791" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">177,021</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d3e75d70-c91d-4c72-881a-e320fb7287fd" contextRef="C_80178e18-784b-4da8-b3cf-13e3cd9a0862" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">104,298</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_24373a38-3994-445a-9516-8b8227a0c2fe" contextRef="C_6754cceb-ddda-46d7-bce6-3babd8ea72b1" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">388</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_200335e2-b523-4c5c-9f3c-205c77bbf24e" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">72,399</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercise of stock options</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_86401ae0-c8bf-4b47-b616-3ad6fa7b8ec6" contextRef="C_003d93ef-a4d4-43c0-8262-a0dfd7071020" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_85cc0b74-169a-49e5-ae69-f1d2857895a9" contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Repurchase of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7a0d4bcb-623b-454e-8452-c26f590d874b" contextRef="C_e7ba679f-92fc-4894-bcb9-6aee2793c21a" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">33,493</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e2e87849-00dc-4020-8c99-0e885b4dd8db" contextRef="C_003d93ef-a4d4-43c0-8262-a0dfd7071020" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">504</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_55b9c265-abf2-413e-95ce-3cb5198a4ca2" contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">504</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Issuance of common stock from RSUs vested</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_36b53117-e5a5-441a-a280-2624a78692b4" contextRef="C_e7ba679f-92fc-4894-bcb9-6aee2793c21a" name="ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">65,109</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b78dda17-308f-4d24-95b0-fecd3e06fd3b" contextRef="C_003d93ef-a4d4-43c0-8262-a0dfd7071020" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,404</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2536ba87-4e88-49e2-8439-448d10936205" contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,404</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other comprehensive income</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a47c6ea9-f7ae-457d-af53-c6c55c57d6af" contextRef="C_f400f9bb-9a06-4257-be98-0ebe26ee6562" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_88129b20-4ae1-41ff-83ea-33cfd5b4eb7c" contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">26</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_09d83159-2068-40b5-9ace-50a279ddc6b0" contextRef="C_8ea297da-cc84-494a-8297-9f69a4846044" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,484</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_754d1984-8504-4eda-a3ac-dbefd9c138da" contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,484</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Balance at March 31, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4b943c0a-386a-4d3d-81c2-57a8d1caa0cd" contextRef="C_39d6be9e-a9cf-476e-86b6-6f3e2a5cccb5" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,666,101</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5c9acff6-716b-4e45-9552-dff0b6a3d8cb" contextRef="C_39d6be9e-a9cf-476e-86b6-6f3e2a5cccb5" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a1235fc0-0c51-4802-9505-c810c2ff3c73" contextRef="C_b5cf808d-510d-4881-90cf-04f5f351c7a7" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">179,924</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0a76021c-d80a-4eed-b14d-904ef812bfe4" contextRef="C_50634026-1f9f-4d9f-9db2-a1ced29f5283" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">105,782</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_95b7e600-fa14-4045-bb4a-4b60b53b314a" contextRef="C_9671648c-3946-46b7-a28b-a179a7ecd81d" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">362</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6727ee60-e6ff-4b8b-ae25-11e6a708afe4" contextRef="C_0b619edc-e8fa-4446-a6d2-12ad05b44d27" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">73,844</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercise of stock options</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d3f3f6cf-3d22-4239-9a0c-5e4d2b86d46e" contextRef="C_76ad5420-881e-425b-81a7-7cdb896dfee6" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">3,453</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3222f447-fb81-489f-9d81-73d1d6a7ec5b" contextRef="C_a9b2de90-9c72-4c71-9827-49a8c58b191a" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_25424049-9224-47d5-b2f4-7266b2941891" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Repurchase of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_360dfcb9-9245-4436-9859-a352e9720214" contextRef="C_76ad5420-881e-425b-81a7-7cdb896dfee6" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">31,570</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3c77f13d-4b1a-43b9-a1f9-db573571d6af" contextRef="C_a9b2de90-9c72-4c71-9827-49a8c58b191a" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">470</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2d74a159-1424-4831-ad67-571a6e019df4" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">470</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Issuance of common stock from ESPP purchases</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e498e667-b547-4341-bd5c-6fd22b2a7d45" contextRef="C_76ad5420-881e-425b-81a7-7cdb896dfee6" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">40,865</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_37bcf088-7e06-42c4-bffe-13a394f8b4f0" contextRef="C_a9b2de90-9c72-4c71-9827-49a8c58b191a" name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">408</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_95b13888-4a8c-400b-9169-39e588f2ec84" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">408</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Issuance of common stock from RSUs vested</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0818c55b-967b-4b2f-8a5c-3fb81252cd3d" contextRef="C_76ad5420-881e-425b-81a7-7cdb896dfee6" name="ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">109,782</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;word-break:break-word;">
     <td style="background-color:#cff0fc;padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d28292f5-e819-48e0-b4eb-30f56f5d5bd2" contextRef="C_a9b2de90-9c72-4c71-9827-49a8c58b191a" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,841</ix:nonFraction></span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_229a5110-d4c7-4ec7-a55d-46412a5cd462" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,841</ix:nonFraction></span></p></td>
     <td style="background-color:#ffffff;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;word-break:break-word;">
     <td style="background-color:#ffffff;padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other comprehensive income</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6dcae85d-f8b3-41e4-a3d3-80e0aad87048" contextRef="C_bd5d9466-dc4f-43cd-8e65-e6f81348a067" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2</ix:nonFraction></span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e02d4dc0-1c1a-4e98-8eaa-e5daf3aa2ac2" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2</ix:nonFraction></span></p></td>
     <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_32f3c651-be6e-4bc0-a8ec-72deb7657be0" contextRef="C_e2b51864-980d-412b-86f9-b25a05ed43df" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,120</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ed63002e-80cd-49a6-93e5-40e8e8e0bfd9" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,120</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Balance at June 30, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e8340d2f-a4a4-458c-81ad-5d40aa290206" contextRef="C_0f7a9a37-9214-4159-98ad-f4a05ae91116" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,788,631</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_68b2c9b1-91ac-4e4c-97bb-fcc7223dced6" contextRef="C_0f7a9a37-9214-4159-98ad-f4a05ae91116" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fdf1508b-7ad9-4be8-9c9e-f051b06dac1e" contextRef="C_6583b95c-af84-4a6e-9ed9-c2d6690152f7" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">183,719</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e4b070f9-3eed-4915-ac08-6c4d1488fc32" contextRef="C_76eac33a-5756-4803-9f1a-277c3974053a" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">108,902</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_971abe29-ae74-4498-963d-b6040cae235c" contextRef="C_5a14aca2-5d35-4f1e-800c-0bc1ec79a40e" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">360</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2e34363c-364e-43a1-83ef-faa816bdfe98" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">74,521</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:33.847%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8.102%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:6.861%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:6.981%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8.002%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:8.922%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.38%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7.762%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:7pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Common Stock</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Additional<br/>Paid-in</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated<br/>Other<br/>Comprehensive</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Total<br/>Stockholders&#8217;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:7pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Shares</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Par Value</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Capital</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Deficit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Loss</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Equity</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:7pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Balance at January 1, 2024</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_36cfa05a-eada-4e09-9d3b-f0eda0da35b3" contextRef="C_9d509af7-a06e-4dc0-853a-d56de89ff8c0" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,761,448</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bc16b2c1-6816-416a-b973-3215bd6cc39e" contextRef="C_9d509af7-a06e-4dc0-853a-d56de89ff8c0" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_03b7231c-0b67-4a9f-a414-ce6670a4daf7" contextRef="C_f95af2f4-3012-4cc2-924d-d40baa6e5112" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">170,139</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0443daf5-f534-4a60-a7d3-e017e1c096e3" contextRef="C_19584243-d9d6-41cf-8f38-a45ef1156558" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">95,118</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4d4fe895-0388-415d-bc2e-b06e7d5bd39f" contextRef="C_0f921dab-def0-487e-ba70-10f45cdd60d9" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">328</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_63bbe942-cd68-4687-b375-2817cd3b5cb0" contextRef="C_762ff647-a9f4-4b74-aa5c-acc10546ba06" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">74,757</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Issuance of common stock from RSUs vested</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_02096387-d8ba-4b7c-a2c6-69ec322468a7" contextRef="C_f9db51c5-d33a-41ea-9880-5f986f6fa757" name="ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">31,720</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0e73efdd-bc71-4bfd-a9ac-81e7e4a21aff" contextRef="C_522f5354-f707-423d-a4ef-92e2139fc49c" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,927</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1f8a85f8-bf79-4468-acaa-d2bdf34f4dc9" contextRef="C_5d6800f9-562f-4264-b223-b9e406f05df8" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,927</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Foreign currency translation loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9a71e09b-3e2f-46bc-b03b-e3606db0fb83" contextRef="C_a93e5c00-a88a-4492-965c-c0cb9d594e67" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">16</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5b464928-3d12-450a-9f83-cdb7653b2b24" contextRef="C_5d6800f9-562f-4264-b223-b9e406f05df8" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">16</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bdeaedd2-c683-4c4f-98c2-807401b34dda" contextRef="C_76e0845d-526c-4a22-87b4-312b6ec710a9" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,909</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6503d28c-6b4a-44a6-b534-4a585ad5cb35" contextRef="C_5d6800f9-562f-4264-b223-b9e406f05df8" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,909</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Balance at March 31, 2024</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cddb3a5e-72e0-49e4-89fd-9757c03f15ef" contextRef="C_509a0569-ae8a-4dd7-a199-25abd7d4b5db" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,793,168</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6d21b8c1-193c-44c0-b287-2e5a531c3994" contextRef="C_509a0569-ae8a-4dd7-a199-25abd7d4b5db" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b2e832e0-3e7b-44b7-b0be-24445974747b" contextRef="C_c57d6488-7d02-4208-8f7b-6e58091c8376" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">173,066</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1579d21a-e95e-44d7-a5a7-29dfdf0840a5" contextRef="C_bf8da887-1ad6-4dad-847d-0c521a42016d" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">98,027</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b53efa98-8eb5-463b-8c78-1912b7b5c138" contextRef="C_ea18427b-53e5-4163-b26f-7f56a728db44" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">344</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1e855a75-7b3c-4f14-90a1-5be0aaf44965" contextRef="C_976a43f2-4f77-4590-b9ab-2373be7be554" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">74,759</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercise of stock options</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2096be51-83da-4373-be3a-e004c6c9a7a7" contextRef="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">5,640</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4a74c3c7-da6c-479f-aa96-0ea28ee46f20" contextRef="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dab49b7d-795f-4c92-b2f3-339f1d5b6c82" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Repurchase of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ff674dd3-9223-4e98-bd72-8c510ff3dc69" contextRef="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">134,150</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a89421d0-a45b-4c55-858a-b3916e8bb859" contextRef="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,999</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_89793007-61c0-4a70-80cf-24b6fe57eecc" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,999</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Issuance of common stock from ESPP purchases</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_962dc3ab-87d9-42df-8f7d-8e6ac1406bf2" contextRef="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f" name="us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">36,586</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f89dea4b-6cef-49bb-8ebc-d17989978f97" contextRef="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b" name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">444</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_33c05650-eeed-4e7e-bb38-833f1119cfbc" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">444</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Issuance of common stock from RSUs vested</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ed4ac19d-4ef0-4f0a-b471-53739774689d" contextRef="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f" name="ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">81,684</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_64ac4072-6575-4f6f-b2a3-f18f68b9d008" contextRef="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,146</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8389b19a-209f-4aba-ba7f-02aec9fcad52" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,146</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Foreign currency translation income</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c4c4f301-a3e5-4dd4-99c6-6f86edb5e765" contextRef="C_e62e03a2-7ede-44a6-b2b4-d46c8b390dee" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_27c56ef0-5416-4ed4-8178-1f737bbfcca6" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_09edb132-f17e-4547-9613-c654f44d56b5" contextRef="C_7a41e0b3-0124-435c-a092-ea5f469f7bea" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">752</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e2537021-1e2f-4be2-803b-b4bb90764bf3" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">752</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Balance at June 30, 2024</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_635d6585-94d3-4759-b34d-ed697d925252" contextRef="C_faab6c1c-3ec0-4211-a050-a91701eb8e2c" name="us-gaap:SharesOutstanding" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">12,782,928</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2b165e58-2cb2-4239-a78d-4b86d7316963" contextRef="C_faab6c1c-3ec0-4211-a050-a91701eb8e2c" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">64</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e82566fe-89aa-46d4-bd16-1b5edc5bf67b" contextRef="C_351b3353-8387-41c8-aaf4-e3ebbdc32ee4" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">174,662</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_21f4dd4d-e4ff-4ec1-959b-6263efe1c45a" contextRef="C_515ef1c5-8683-4290-950e-82fd3816c134" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">98,779</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bfd85998-f868-42e7-a326-239b879a2d76" contextRef="C_cb56e57f-04e2-47ea-a6d9-3ab4b0c4a2e8" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">332</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_eca11ee3-b007-423d-8994-05434636b31c" contextRef="C_f96e3db2-b7dc-492f-b625-42945641180e" name="us-gaap:StockholdersEquity" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">75,615</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">See accompanying notes to condensed consolidated financial statements.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">5</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="condensed_consolidated_statements_cash_f"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Condensed Consolidated S</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">tatements of Cash Flows</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(In thousands)</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(Unaudited)</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:57.96%;box-sizing:content-box;"/>
     <td style="width:2.06%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:16.96%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:2.06%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:16.96%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cash flows from operating activities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e5e7aaaf-af2c-47e0-9e77-fc642c37f9cc" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,604</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_10ac5a96-9d3a-40ae-a040-5ddec9e0ec06" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ProfitLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,661</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:5pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Adjustments to reconcile net loss to net cash provided by (used in ) operating activities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Depreciation of property and equipment</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_41e0c432-76b3-42c5-8a93-ba68aea1c43e" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:Depreciation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,037</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_86265f15-aebe-4c35-baa0-b45fc04b60cc" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:Depreciation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,126</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Amortization of intangible assets</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_052c9799-832d-4518-a7d2-e2b4d3eee3e1" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,931</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2eb291d4-ce4e-41bf-85b1-d5988eda1f7a" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,929</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Impairment of property and equipment</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_332b2a68-f6b2-4f4b-8dc2-43f08319c6d5" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ProductionRelatedImpairmentsOrCharges" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">73</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0e07ff35-1059-4708-8512-678a0eb0da2e" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ProductionRelatedImpairmentsOrCharges" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">358</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Stock-based compensation</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7519fe1d-59fb-43da-bf0c-79dcc44d4a24" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,245</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_31e8da28-8bf0-48d9-9cc3-5c22b705a567" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ShareBasedCompensation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,073</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred taxes</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_47fd8f84-c22c-47d9-b28c-8e772ff3f403" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:DeferredIncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">18</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9b1b3903-8b43-4ea9-9e99-0dd6567f495f" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:DeferredIncomeTaxExpenseBenefit" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">107</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Loss on disposal of property and equipment</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_23d9fd6e-680b-45e9-81ad-2e485d26bfe9" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Allowance for credit losses</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_74c04548-e968-4b37-bee1-8b9445670aee" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ProvisionForLoanLossesExpensed" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">269</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0c39a9a4-310d-48ff-9c2e-9292be074482" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ProvisionForLoanLossesExpensed" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">50</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Change in fair value of contingent consideration</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e5f56a3e-582a-4e14-aa22-dce3f186451e" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">554</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;text-indent:10pt;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Changes in operating assets and liabilities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.773%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accounts receivable and contract asset</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_51f5e1f9-35d1-49b8-9a12-5c8cfd77e596" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:IncreaseDecreaseInAccountsReceivableAndContractAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,548</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c4468cc3-d152-4354-9e40-2554aebcf601" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="ssti:IncreaseDecreaseInAccountsReceivableAndContractAsset" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,055</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.773%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Prepaid expenses and other assets</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ee080135-f093-40e1-8816-09c785fb75b4" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">696</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e74f7e13-1873-4e77-85cf-85a32bc6c9df" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">368</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.773%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accounts payable</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ec3461c0-03a1-468b-9dd9-df52b8a8b204" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:IncreaseDecreaseInAccountsPayable" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">713</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_28d96f6c-4792-473f-ba8d-42768597404a" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:IncreaseDecreaseInAccountsPayable" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">728</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.773%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accrued expenses and other liabilities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2d96bb19-3a37-4757-807c-326cbcf3911c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,124</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fb4c0710-4430-40a2-bd22-5f6d5013a746" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">20</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:2.773%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred revenue</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_03246589-4e28-473d-b085-4af46f449c6e" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">704</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_744719d2-5380-4aa4-a1ce-6fac2455e6c7" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,353</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:20pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:3.707%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net cash provided by (used in) operating activities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_62975fb4-7e07-4811-b667-7a6bdd4f9183" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,424</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7af3a3fa-1d70-46c3-9c7e-166ccaf261ce" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,391</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cash flows from investing activities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Purchase of property and equipment</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9b8ee470-2f48-43ff-af6e-658070a74b5c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,277</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ec83f89d-155b-4bc1-adcf-b3b0d4396981" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,717</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Investment in intangible and other assets</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7c37750e-20cd-4e75-b45a-af1970230896" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:PaymentForInvestmentInIntangibleAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e2e453cc-0fbb-44df-95ea-3cb86e40095e" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="ssti:PaymentForInvestmentInIntangibleAndOtherAssets" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">31</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:20pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:3.707%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net cash used in investing activities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a8b760a3-24ca-4e0b-9885-940606af66a3" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">2,290</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_573174ae-1364-4363-93f7-c20d3d498fc7" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,748</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cash flows from financing activities:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Proceeds from exercise of stock options</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d1edaf0b-ef4d-495d-87c9-ea1bb126e808" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ProceedsFromStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_83a00380-93ee-40cd-ba0d-db587fb98f87" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ProceedsFromStockOptionsExercised" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Repurchases of common stock</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_adc0c4c9-9408-4241-a301-e63c6f0b54d7" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:PaymentsForRepurchaseOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">974</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e01191c3-2bb4-4d9e-846c-e356f264e14a" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:PaymentsForRepurchaseOfCommonStock" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,999</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Proceeds from employee stock purchase plan</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_24af3b42-1990-49db-b226-9b821c179186" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">408</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8bfec69f-f139-423c-b4f6-738d2c357fd2" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">444</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:20pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:3.707%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net cash used in financing activities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d6bd0847-fd90-47a5-bdbb-45c68c913021" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">547</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_56d1c5b8-bd22-45ff-bd66-8e1a9fd24160" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">1,550</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Change in cash and cash equivalents</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_93f35b8a-7f55-4300-902f-2ee96d6fd35d" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,261</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e7a25406-f2e5-4419-a503-f841665271aa" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,093</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Effect of exchange rate on cash and cash equivalents</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_95e899f0-ba74-4b59-9f3d-bbabeffc940b" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">28</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-kerning:none;min-width:fit-content;">(</span><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fb57e0f6-3f1f-4de8-af68-71195d06e38a" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">6</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cash and cash equivalents at beginning of year</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dfc214f6-821a-495e-8ce3-9801de2d74b5" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,183</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8507ca51-97ca-44a4-9ff9-e613f02b8bc9" contextRef="C_762ff647-a9f4-4b74-aa5c-acc10546ba06" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,703</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cash and cash equivalents at end of period</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_695d95dd-f932-437f-95ad-eda0f49c1bf5" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,950</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_36f9d5d9-7e49-4df0-867d-b426973e0b83" contextRef="C_f96e3db2-b7dc-492f-b625-42945641180e" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">9,790</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Supplemental cash flow disclosures:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cash paid for interest</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_648b1147-4fef-4676-99c8-002d3f8c32cc" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:InterestPaidNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">132</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f877cad9-923a-4613-95ec-c5ac877a296b" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:InterestPaidNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">268</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cash paid for income taxes</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8d76ac6b-5522-44a3-886d-de28156d460c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:IncomeTaxesPaidNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">353</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_914db0f9-9528-4c54-b59c-361c4d46e463" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:IncomeTaxesPaidNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">136</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Supplemental cash flow disclosures:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">ROU Assets obtained in exchange for lease liabilities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8827f6d7-0920-4b29-9067-72c816ac59ce" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">193</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Purchases of property and equipment and intangibles included in accounts payable</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6d3492c4-980f-44c7-a42d-63a3980ac725" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">706</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="font-size:8pt;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_83373ba6-5c9c-407d-a32a-b4f587cfa534" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="ssti:PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">614</ix:nonFraction></span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">See accompanying notes to condensed consolidated financial statements.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">6</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="notes_to_condensed_consolidated_financia"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Notes to Condensed Consoli</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">dated Financial Statements</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_88bc4f47-24b9-4c88-a694-6ccddafc7936" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 1. Organization and Description of Business</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc. (the &#8220;Company&#8221;) brings the power of digital transformation to law enforcement and security personnel by providing precision-policing and security solutions, combining data-driven solutions and strategic advisory services for law enforcement, security teams and civic leadership. As of June 30, 2025, the Company had approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f26a7046-bed1-4bea-9675-c6ae32d1e899" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:NumberOfCustomers" unitRef="U_Customers" decimals="INF" format="ixt:num-dot-decimal">335</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">customers and to date has worked with approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2da69945-81d8-4828-bb95-a1628eeb616a" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:NumberOfAgencies" unitRef="U_Agencies" decimals="0" format="ixt:num-dot-decimal">2,100</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> agencies</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> to help drive more efficient, effective, and equitable public safety outcomes.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company&#8217;s SafetySmart&#153; platform includes six data-driven tools consisting of (i) its flagship product, ShotSpotter</span><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:6.7pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#174;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the leading outdoor gunshot detection, location and alerting system trusted by </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9263fdc2-8d61-424f-8be7-4e1ea5f47886" contextRef="C_a53e737c-dbbe-44b2-a430-98a60b205182" name="ssti:NumberOfCitiesInWhichEntityOperates" unitRef="U_City" decimals="0" format="ixt:num-dot-decimal">179</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> cities and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6871e90e-d06a-4c4d-9433-ae23bda8becd" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:NumberOfUniversitiesAndCorporationsInWhichEntityOperates" unitRef="U_Universities" decimals="INF" format="ixt:num-dot-decimal">22</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> universities and corporations as of June 30, 2025, (ii) CrimeTracer&#153;, a leading law enforcement search engine that enables investigators to search through more than one billion criminal justice records from across jurisdictions to generate tactical leads and quickly make intelligent connections to solve crimes, (iii) CaseBuilder&#153;, a one-stop investigative management system for tracking, reporting, and collaborating on cases, (iv) ResourceRouter&#153; that directs the deployment of patrol and community anti-violence resources in an objective way to help maximize the impact of limited resources and improve community safety, (v) PlateRanger&#153; powered by Rekor</span><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:6.7pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#174;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, an advanced license plate recognition (&#8220;ALPR&#8221;) and vehicle identification solution that leverages artificial intelligence (&#8220;AI&#8221;) and machine learning (&#8220;ML&#8221;) to enhance investigative efficiency and provide real-time data sharing for law enforcement, introduced in July 2024 through a strategic partnership with Rekor Systems, Inc and (vi) SafePointe&#153;, an AI-based weapons detection system. The Company offers its solutions on a software-as-a-service subscription model to its customers.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">ShotSpotter for Campus and ShotSpotter for Corporate, are typically smaller-scale deployments of ShotSpotter vertically marketed to universities, corporate campuses, and key infrastructure centers to mitigate risk and enhance security by notifying authorities of outdoor gunfire incidents, saving critical minutes for first responders to arrive. In 2019, the Company created a technology innovation unit, SoundThinking Labs, to expand its efforts supporting innovative uses of its technology to help protect wildlife and the environment. Additionally, the Company provides maintenance and support services and professional software development services to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_43502899-f501-46c6-abc5-3aec5dc9bcf6" contextRef="C_bccbfbbd-7cda-4f8c-b810-c6dcca0ad170" name="ssti:NumberOfCustomers" unitRef="U_Customers" decimals="0" format="ixt-sec:numwordsen">two</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customers, through sales channel intermediaries.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company&#8217;s principal executive offices are located in Fremont, California. The Company has </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4535387d-a64e-446d-9fcc-377a7c38e4a8" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="ssti:NumberOfSubsidiary" unitRef="U_Subsidiary" decimals="INF" format="ixt-sec:numwordsen">six</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> wholly owned subsidiaries.</span></p></ix:nonNumeric></div><div><ix:nonNumeric id="F_75b0a257-464a-4642-9498-c36549fac827" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:SignificantAccountingPoliciesTextBlock" escape="true" continuedAt="F_75b0a257-464a-4642-9498-c36549fac827_1"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 2. Summary of Significant Accounting Policies</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_5116675c-88bd-4593-aaeb-8383ac76723b" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:BasisOfAccountingPolicyPolicyTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Basis of Presentation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;U.S. GAAP&#8221;) and applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) regarding interim financial reporting. Certain information and note disclosures normally included in the consolidated financial statements prepared in accordance with U.S. GAAP have been condensed or omitted pursuant to such rules and regulations. The unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries. All significant intercompany transactions have been eliminated upon consolidation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements and related financial information should be read in conjunction with the consolidated financial statements filed with the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024 (&#8220;Annual Report&#8221;) filed with the SEC on March 31, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the opinion of management, the accompanying unaudited condensed consolidated financial statements reflect all normal recurring adjustments necessary to present fairly the financial position, results of operations, comprehensive loss, stockholders&#8217; equity and cash flows for the interim periods, but are not necessarily indicative of the results of operations or cash flows to be anticipated for the full year 2025 or any future period. The Company has evaluated subsequent events occurring after the date of the condensed consolidated financial statements for events requiring recording or disclosure in the unaudited condensed consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">7</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:continuation id="F_75b0a257-464a-4642-9498-c36549fac827_1" continuedAt="F_75b0a257-464a-4642-9498-c36549fac827_2"><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_7d6a86b2-d8f6-4b19-8494-2f0ed3b79af9" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:UseOfEstimates" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Use of Estimates</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The preparation of unaudited condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and reported amounts of revenues and expenses during the reporting period. On an ongoing basis, management evaluates its significant estimates, including the valuation of accounts receivable, the lives and realization of tangible and intangible assets, contingent consideration liabilities, stock-based compensation expense, customer life, accounting for revenue recognition, contingent liabilities related to legal matters, and income taxes including deferred taxes and any related valuation allowance. In particular, the Company&#8217;s contingent consideration liabilities are subject to significant estimates surrounding forecasts of certain revenues and other factors. Management bases its estimates on historical experience and on various other market-specific and relevant assumptions it believes to be reasonable under the circumstances. Actual results could differ from those estimates and such differences could be material to the Company&#8217;s financial position and results of operations.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company records net deferred tax assets to the extent the Company believes these assets will more likely than not be realized. In making such a determination, the Company considers all available positive and negative evidence, including future reversals of existing taxable temporary differences, projected future taxable income, tax-planning strategies, and results of recent operations. In the event the Company determines that it would be able to realize its deferred assets in the future in excess of their net recorded amount, the Company would make an adjustment to the deferred tax asset valuation allowance, which would reduce the provision for income taxes.</span></p></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_b47084c9-b76b-44cb-9f98-d73c07613181" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ConcentrationRiskCreditRisk" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentrations of Risk</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Credit Risk</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; Financial instruments that potentially subject the Company to concentration of credit risk consisted primarily of cash and cash equivalents and accounts receivable from trade customers. The Company maintains its deposits of cash and cash equivalents at </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1070a645-6a27-404a-9c5f-115127beab45" contextRef="C_d70b99de-ef29-4d77-837e-3a5e9606cfab" name="ssti:NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" unitRef="U_Financialinstitution" decimals="INF" format="ixt-sec:numwordsen">three</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> domestic and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ec710a93-39dd-4df9-be87-b4e77fb2b4c2" contextRef="C_a005af1a-cfe2-47e5-ab4d-96d2aa948dbf" name="ssti:NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" unitRef="U_Financialinstitution" decimals="INF" format="ixt-sec:numwordsen">four</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> international financial institutions. The Company is exposed to credit risk in the event of default by a financial institution to the extent that cash and cash equivalents are in excess of the amount insured by the Federal Deposit Insurance Corporation (&#8220;FDIC&#8221;) and other local country government agencies. The Company generally places its cash and cash equivalents with high-credit quality financial institutions. To date, the Company has not experienced any losses on its cash and cash equivalents. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company had approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ee57d82c-5fb8-40d6-a749-359d157124cf" contextRef="C_d3224397-a478-4405-9cae-d0a7bc0bb542" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">7.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million, for which only $250,000 is insured under FDIC limits, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9b406c8f-78dc-49eb-9d2c-c4e42f423c42" contextRef="C_72be6c25-daa0-44d6-bfd9-63a676764a38" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">13,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_76b58b50-90b7-4742-8fe8-61e3c5edbdac" contextRef="C_d3fed023-ce0a-450c-b631-1e94b2dc6f6b" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">114,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, deposited with the Company&#8217;s three domestic financial institutions.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Accounts Receivable and Contract Assets</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; At June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c8a25a97-61ba-48de-bde3-b12a38e0941b" contextRef="C_7dd5e880-15ee-439c-a081-48807c99f4d9" name="ssti:NumberOfCustomers" unitRef="U_Customers" decimals="INF" format="ixt-sec:numwordsen">one</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fbc9b971-bce2-4edc-a287-a80d09af46d9" contextRef="C_d8a3f401-5d03-47da-a1dd-dd4700aefc11" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">32</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total accounts receivable and contract assets, net. At December 31, 2024, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9a38eeee-ea4b-409d-92c3-2eb42066ae40" contextRef="C_8345288f-b24e-4e5d-b67d-4ac2b933db67" name="ssti:NumberOfCustomers" unitRef="U_Customers" decimals="INF" format="ixt-sec:numwordsen">one</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a2b4eeaf-3a95-4fec-92e2-a8a80ab62999" contextRef="C_77ec4fa8-fb33-4d07-9983-a7629bc33655" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">19</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">%, of the Com</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">pany&#8217;s total accounts receivable and contract assets, net.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Revenues</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; For the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cc00f575-c718-4de6-a25b-950eff1034d2" contextRef="C_9755d019-a7ad-4033-a69e-2ca9947613cc" name="ssti:NumberOfCustomers" unitRef="U_Customer" decimals="INF" format="ixt-sec:numwordsen">one</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7c19274e-700d-47eb-b09a-88da606bd6e9" contextRef="C_50d9bb12-07c5-4a66-a1a2-f5d4a776d234" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">25</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f6900e28-ca05-41ee-80f5-99cfd42eb92c" contextRef="C_2a47e2d2-2a27-4683-a6ce-ecf2fb10345c" name="ssti:NumberOfCustomers" unitRef="U_Customer" decimals="INF" format="ixt-sec:numwordsen">two</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customers accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fe290781-5db9-4f7a-a43f-7f140e058237" contextRef="C_dfaa0b2a-742a-40b6-972e-3a8f2f0452db" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">25</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7558ef42-e22a-484f-8bf5-6a9c93a97e7f" contextRef="C_ad6c65f7-513f-4b42-8285-821d5072e5eb" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">10</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e829b200-2f50-4ed5-bd73-ee7a1d176245" contextRef="C_351a4708-d169-4833-a2ad-3c11985baa77" name="ssti:NumberOfCustomers" unitRef="U_Customer" decimals="INF" format="ixt-sec:numwordsen">one</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_20a9e66f-9f2d-41ce-b3f2-579975d7f01c" contextRef="C_1896f14a-ab9b-4a3c-9182-f094c6bccbb8" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">31</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_39499b4e-2c28-45af-b133-9271efb25a20" contextRef="C_b244f1c6-23ec-487a-9bf2-4175fb678f69" name="ssti:NumberOfCustomers" unitRef="U_Customer" decimals="INF" format="ixt-sec:numwordsen">two</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customers accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_241db130-19a2-479e-b636-46cf684f18c3" contextRef="C_33e41d3e-87d3-497f-a430-566dae1e6dde" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">26</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_78c5845d-dbf9-453c-b597-3f25d580bfb9" contextRef="C_915e6b69-ee02-4a74-8eed-225a9f58ae75" name="us-gaap:ConcentrationRiskPercentage1" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">10</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Suppliers</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#8211;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company relies on a limited number of suppliers and contract manufacturers. In particular, a single supplier is currently the sole manufacturer of the Company&#8217;s proprietary sensors.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, there were no changes to the Company&#8217;s significant accounting policies described in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024.</span></p></ix:nonNumeric></div><div><ix:nonNumeric id="F_bd109b57-3b95-4844-9a39-5491daf846dd" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock" escape="true" continuedAt="F_bd109b57-3b95-4844-9a39-5491daf846dd_1"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Recent Accounting Pronouncements</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Improvements to Income Tax Disclosures</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In December 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued Accounting Standards Update (&#8220;ASU&#8221;) 2023-09, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Improvements to Income Tax Disclosures</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> (&#8220;ASU 2023-09&#8221;). ASU 2023-09 enhances the transparency of income tax disclosures, primarily by requiring public business entities to disclose on an annual basis, specific categories in the rate reconciliation tabular presentation, as well as by providing additional information for reconciling items that meet a quantitative threshold. The ASU also requires disaggregated disclosures of federal, state and foreign income taxes</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div></ix:continuation></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">8</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:continuation id="F_75b0a257-464a-4642-9498-c36549fac827_2"><div style="font-size:10pt;font-family:Times New Roman;"><ix:continuation id="F_bd109b57-3b95-4844-9a39-5491daf846dd_1"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">paid. The new guidance is effective for fiscal years beginning after December 15, 2024. The Company does not expect implementation of the new guidance to have a material impact on its unaudited condensed consolidated financial statements.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Expense Disaggregation Disclosures</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In November 2024, the FASB issued ASU 2024-03, Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40), which requires disclosure of specific information about costs and expenses within relevant expense captions on the face of the income statement, qualitative descriptions for expense captions not specifically disaggregated quantitatively, and the total amount and definition of selling expenses for interim and annual reporting periods. This standard is effective for the Company&#8217;s annual reporting period beginning January 1, 2027 and interim reporting periods beginning January 1, 2028 and should be applied on a retrospective or prospective basis, with early adoption permitted. We are currently assessing the impact of adopting this standard on our consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:continuation></div></ix:continuation></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><div><ix:nonNumeric id="F_ec8c51a0-e4fa-4109-ad45-c3dae9db35d7" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:RevenueFromContractWithCustomerTextBlock" escape="true" continuedAt="F_ec8c51a0-e4fa-4109-ad45-c3dae9db35d7_1"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 3. Revenue Related Disclosures</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#0000ff;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_658b5498-c302-4135-b217-7a9115edda34" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" escape="true"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The changes in deferred revenue were as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:47.51%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:10.822000000000001%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.44%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:10.142000000000001%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.44%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.602%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.44%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.602%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Beginning balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">45,437</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50,752</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6262b1a1-0e4b-46cc-a71a-cb9878a692b5" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">44,233</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5bf9563d-e836-414e-9f9d-76366309d20b" contextRef="C_762ff647-a9f4-4b74-aa5c-acc10546ba06" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">42,077</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;New billings</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">21,943</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,887</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a269551d-a8c8-4d23-89a7-6e4c202e785c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">50,362</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ec457fb8-ea24-4716-a81b-7c2644660d61" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">57,924</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Revenue recognized during the year from beginning balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(15,533</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(19,550</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(23,484</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_567e21a0-9fe9-456e-832c-0ff085ea3142;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></span></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(29,051</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_06429d32-4537-4ebc-86cc-d19d6502fed4;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></span></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Revenue recognized during the year from new billings</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(8,317</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(6,658</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b6044674-c8db-4cb7-9d15-a87aa9c35b67" contextRef="C_96416f51-012b-433d-9156-117993e161be" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">27,581</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_97cc1b95-00f1-4f55-be7c-ab2abf732bab" contextRef="C_3fe7103e-4236-4c29-ad82-c866c95265dc" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">21,519</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Ending balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">43,530</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">49,431</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_add1fca3-4d1a-449a-add0-27c0a6bdce42" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">43,530</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9c94cbd3-afe0-4151-a5e2-84f339c1cae7" contextRef="C_f96e3db2-b7dc-492f-b625-42945641180e" name="us-gaap:ContractWithCustomerLiability" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">49,431</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_2a197e4a-13a6-4bda-8ce3-36ddccde79d1" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" escape="true"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table presents remaining performance obligations for contractually committed revenues as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025 (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:47.5%;box-sizing:content-box;"/>
         <td style="width:12.82%;box-sizing:content-box;"/>
         <td style="width:1.44%;box-sizing:content-box;"/>
         <td style="width:12.16%;box-sizing:content-box;"/>
         <td style="width:1.44%;box-sizing:content-box;"/>
         <td style="width:11.6%;box-sizing:content-box;"/>
         <td style="width:1.44%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.6%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_a7f7bb7e-1cb0-40b4-bfe3-75e936ee0852;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Remainder of 2025</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_60e93dcb-6817-4223-b079-3b812587f364" contextRef="C_7a929952-acd3-4997-96c2-997008fd538d" name="us-gaap:RevenueRemainingPerformanceObligation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30,049</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_8c796ba5-126f-4c87-bca3-8bedf08160f5;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2026</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2d10c0dd-9a9d-43ef-9bfe-936044fd2f95" contextRef="C_5e746d1b-74a7-41a0-9a82-2d26677e3e66" name="us-gaap:RevenueRemainingPerformanceObligation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">41,462</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_2fc23526-7ba6-46e0-9ebd-5e8619fff34b;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2027</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1c378798-cc4d-42f7-8220-f7d547fe53a0" contextRef="C_937b7985-9731-45a1-9693-d6991a28d143" name="us-gaap:RevenueRemainingPerformanceObligation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">24,201</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_8bfe4752-f28e-4d06-a7bb-d5cf53a2fee9;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Thereafter</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_68e2c961-392a-4b9f-8f4e-e615a26eeeac" contextRef="C_6a737722-6953-44ed-9b87-0fc316b7583e" name="us-gaap:RevenueRemainingPerformanceObligation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,214</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bb1fc924-3ba8-4822-908b-499d84d77e2a" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:RevenueRemainingPerformanceObligation" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">99,926</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The timing of certain revenue recognition included in the table above is based on estimates of go-live dates for contracts not yet live. Contractually committed revenue includes deferred revenue as of June 30, 2025 and amounts under contract that will be invoiced after June 30, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_65a10300-0d1d-48f2-8ad2-b497a4a89d09" contextRef="C_22aa61a3-8fa4-42c7-b408-70251d47271f" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">25.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the United States, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c7286136-30fd-4c59-9c3e-8131c5c46255" contextRef="C_ddb499ef-e435-4cab-afb6-2b74e0ca95d8" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_fa34c632-1602-450f-8338-30abde0f20c7" contextRef="C_c2065de9-2d2f-4aaa-aa43-35a44822e36b" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_14a67e29-fd7a-4b46-a819-be858c64424a" contextRef="C_d9ea2a4c-a7c9-4999-9c09-7780c0d2dd13" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the Bahamas, South Africa and South America. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_468ce644-7b95-46ac-ba3b-8fb1f7902f50" contextRef="C_166b3beb-19d4-44aa-9ab6-0df3e63a7b5a" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">26.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the United States, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2cd56acc-042d-430a-af10-e20d0562d467" contextRef="C_e67bcbab-2624-4827-9322-ca0e84ef22a0" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_cc9053b8-c53a-441f-8bd0-8e439ad00798" contextRef="C_44896582-2b1e-43a6-8e05-605d41df94b8" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the Bahamas, South Africa </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">and Uruguay.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e0987350-05fd-4b1c-bd11-a62df0a4d152" contextRef="C_32b8e83f-80a4-49d4-87d5-467104f9eb29" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">52.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the United States, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3df0aabe-708d-406a-b776-191536d61c63" contextRef="C_27fec0a5-2d60-44c0-9d6e-7e43578f994d" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_d32e6553-8aeb-450b-8916-ccfb0e932285" contextRef="C_dda0052b-510e-4f91-9dc3-73cdc2c7440a" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_e1c16cd6-3170-48ef-b7bc-df80399f9ea9" contextRef="C_4f608cb9-9280-445a-ad3b-70370903c390" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.5</ix:nonFraction></ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the Bahamas, South Africa and South America. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d571ce8d-6e57-460e-9f78-ac28140cfb3b" contextRef="C_7f9f80e7-661d-49bf-b9fb-979f3caa3301" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">51.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the United States, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7a22979b-945b-46f6-aa38-4ff0b7fe8f1c" contextRef="C_e6fb1587-9845-4286-be93-e93b57f7c145" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal"><ix:nonFraction id="F_7d880e2a-bf70-43d7-b8a3-6565eee4dd8a" contextRef="C_23af2f6d-72c9-4042-bbd5-52b6b7bcc0b6" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.3</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the Bahamas, South Africa</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and Uruguay.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b4216c8b-2a82-418f-9575-d95d12bf5c8d" contextRef="C_4d2f56af-f39c-42e6-b0c1-a3f8fdfe2033" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">25.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from monthly subscription, maintenance and support services, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7187e4ef-d6fe-4b84-93f1-871125139379" contextRef="C_046126a1-3c94-4af1-8c5c-9801b50dc97c" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">from professional software development services. During</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">9</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:10pt;font-family:Times New Roman;"><ix:continuation id="F_ec8c51a0-e4fa-4109-ad45-c3dae9db35d7_1"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8edb45b9-33d4-415c-b8dd-8c26e577a5ae" contextRef="C_c8f54555-5aaa-40a1-a85a-cad3e23ed1e0" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">26.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from monthly subscription, maintenance and support services, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3731a8dc-40a9-4f01-b36a-37da7ba6304f" contextRef="C_6e80f8e2-8d55-4935-bdd6-4752c95a09d1" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from professional software development services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b37c2c54-32bc-4381-915d-80c3b4aa3c20" contextRef="C_4857efeb-ac76-497f-9467-da928e644e40" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">53.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from monthly subscription, maintenance and support services, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b0458ece-bc98-4355-baaf-07695c51d876" contextRef="C_0d796143-eb6d-410a-b76c-2b68e5f1b5f4" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.7</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from professional software development services. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4edaffa4-d16f-4592-82a3-62546953bc5a" contextRef="C_4bb40e2c-76d4-4c6d-b476-8b2fe247ccc5" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">50.6</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from monthly subscription, maintenance and support services, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2a8cace5-836d-4daa-a4c8-0dffe63d4a76" contextRef="C_482c1ac1-0b50-47a3-96ba-d25d4eed94a8" name="us-gaap:Revenues" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from professional software development services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025, the Company recognized approximately $4.3 million of catch-up revenue comprising approximately $3.5 million of catch-up revenue during the three months ended March 31, 2025 based on two 3-year contract renewals with New York City Police Department and $0.8 million of catch-up revenue from various customers during the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:continuation></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_076b052b-f0a0-472f-8144-24c832d07026" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:FairValueDisclosuresTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 4. Fair Value Measurements</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In August 2023, the Company estimated the fair value of the contingent consideration liability associated with its acquisition of SafePointe, LLC (&#8220;SafePointe&#8221;) to be $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ea3f31a9-ff43-4346-b09a-9a8c3b31d66e" contextRef="C_b6f85494-a302-4f08-9124-86d1d433ed58" name="us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">3.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million as of the acquisition date, using a Monte Carlo simulation approach with asset and revenue volatility of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_aede876e-9f8f-4259-be52-7900c21bb6e7" contextRef="C_ba843d94-b9c2-4c0a-84df-c76400a718c6" name="ssti:PercentageOfAssetsFairValueAdjustment" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">76.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_396727fd-5e48-43bc-8aa7-b23cf4c49fff" contextRef="C_ba843d94-b9c2-4c0a-84df-c76400a718c6" name="ssti:PercentageOfRevenueVolatility" unitRef="U_pure" scale="-2" decimals="3" format="ixt:num-dot-decimal">25.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">%, respectively. This fair value measurement is classified as Level III within the fair value hierarchy as prescribed by ASC 820, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Fair Value Measurement</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As of December 31, 2023, the Company evaluated the contingent consideration related to the acquisition of SafePointe based on estimated SafePointe revenue and adjusted the consideration to $0.6 million. During the first half of 2024, the Company determined the contingent consideration was not probable of being earned resulting in the fair value of contingent consideration liabilities as of June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and 2024 being </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_64517bc6-360f-40b7-b432-deeb347c5216" contextRef="C_264d7113-d930-418b-8965-90b459e35062" name="us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure" unitRef="U_USD" scale="6" decimals="-6" format="ixt-sec:numwordsen"><ix:nonFraction id="F_496d6932-e665-4b02-9fc6-454faa184358" contextRef="C_7b580e4b-0c13-4633-9238-a898326d3e82" name="us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure" unitRef="U_USD" scale="6" decimals="-6" format="ixt-sec:numwordsen">nil</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">. Accordingly, the Company recognized a change in fair value of contingent consideration of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_471b0428-b4bf-4caa-93fe-721b8aea17ef" contextRef="C_f41fd3f7-c39c-4d45-8d83-44a10cce6a89" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" unitRef="U_USD" decimals="INF" format="ixt:num-dot-decimal"><ix:nonFraction id="F_cae25da3-6b06-46d9-a2fb-f4d4d4c85f92" contextRef="C_3c079ac5-86da-4a71-beff-90d2eacf323d" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" unitRef="U_USD" decimals="INF" format="ixt:num-dot-decimal">0.6</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million during the three and six months ended June 30, 2024. There were </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a91025c2-cb81-4262-9bc0-786b7a872bf4" contextRef="C_30b254ec-8bda-46d1-bea5-ce715bb8ad01" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_22955ac9-8074-4fd8-bd35-f0228fd6b0d7" contextRef="C_aec290e2-452e-40e9-bb3e-9ffd13a9ac4e" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> changes in the fair value of contingent consideration during the three and six months ended June 30, 2025.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">There were </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ac6cd9c8-0949-4f49-bf9c-cb29556c0455" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen"><ix:nonFraction id="F_153689b1-5948-42fd-a012-82d207309000" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> transfers into or out of Level III during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 and 2024.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company also has $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5d1ccc3f-303f-486b-b40b-c973217b59d3" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:MoneyMarketFundsAtCarryingValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">6.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million in a money market fund. The fair value measurement was classified as Level I within the fair value hierarchy as prescribed by Accounting Standards Codification 820-10-35-37 (&#8220;ASC 820, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Fair Value Measuremen</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">t&#8221;).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company records its financial assets and liabilities at fair value. The carrying amounts of certain of the Company&#8217;s financial instruments, including cash, trade and other receivables, net, and accounts payable, approximate their fair value due to their short maturities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div><div><ix:nonNumeric id="F_0e892297-f9f0-40a4-a6d5-9734c90b335e" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:IntangibleAssetsDisclosureTextBlock" escape="true" continuedAt="F_0e892297-f9f0-40a4-a6d5-9734c90b335e_1"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 5. Intangible Assets, Net</span></p><div><ix:nonNumeric id="F_e4d62f2a-f1b1-4559-8023-14adb394fcf1" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" escape="true" continuedAt="F_e4d62f2a-f1b1-4559-8023-14adb394fcf1_1"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Intangible assets consist of the following (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"/>
         <td style="width:13.28%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:12.3%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.68%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:12.3%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.68%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:12.3%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-Average Amortization Period  (in years)</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Gross</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Net</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_9e95ae57-d157-4509-856e-b7871a835650" contextRef="C_8a04306d-3613-41ea-b305-0cc45348992f" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e5693057-2637-4323-ab2f-9dfc33a23286" contextRef="C_8a04306d-3613-41ea-b305-0cc45348992f" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,470</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0bc1423f-7537-4386-9fa8-28cbca5a8358" contextRef="C_8a04306d-3613-41ea-b305-0cc45348992f" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,226</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6519e25a-be11-45ec-9894-1599bb984308" contextRef="C_8a04306d-3613-41ea-b305-0cc45348992f" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">18,244</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Acquired software technology</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_ea2f4710-930e-4327-bb3b-900fa793ddf2" contextRef="C_d802c174-e7fa-4925-b164-f60af41b245f" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0644c79d-28ee-4d4f-a5ee-bf755e5808be" contextRef="C_d802c174-e7fa-4925-b164-f60af41b245f" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,340</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c8148346-5a73-43cd-875c-1f9d6cbc6b05" contextRef="C_d802c174-e7fa-4925-b164-f60af41b245f" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,766</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d3ff5678-30d0-4988-b769-b69aa11d0e18" contextRef="C_d802c174-e7fa-4925-b164-f60af41b245f" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">11,574</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Patents and intellectual property</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_34ec3d32-1a87-4d78-8184-8c479cbacdb7" contextRef="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_101c4436-39f2-496b-8448-04d3fc4e6366" contextRef="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,081</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9758df31-0996-4f5d-ae11-b2babeada65f" contextRef="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,505</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bea738b2-c745-44f1-b77a-ad940b16dd25" contextRef="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">576</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Tradename</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_08b793df-7f23-4c4c-a6ea-413e94bb7b0c" contextRef="C_49396b45-f68b-49b4-9d4b-7b28e5495469" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3087e2dd-d2f6-450b-97e2-de21c2c8c84f" contextRef="C_49396b45-f68b-49b4-9d4b-7b28e5495469" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,100</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b9e2e764-b1e7-477c-b35a-79e7b7e8f99b" contextRef="C_49396b45-f68b-49b4-9d4b-7b28e5495469" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,228</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_018e1f17-62f2-4ca1-8ebd-a0343cc1dcc4" contextRef="C_49396b45-f68b-49b4-9d4b-7b28e5495469" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">872</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total intangible assets, net</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_79123efe-1975-4277-b1bd-cc73d6842cfe" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">45,991</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b2a1da04-d4fb-44b3-8acd-518499212297" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,725</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d61366e9-bbde-4aca-a172-e3370da78571" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">31,266</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></ix:nonNumeric></div></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">10</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div style="font-size:10pt;font-family:Times New Roman;"><ix:continuation id="F_0e892297-f9f0-40a4-a6d5-9734c90b335e_1"><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><ix:continuation id="F_e4d62f2a-f1b1-4559-8023-14adb394fcf1_1"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"/>
         <td style="width:13.28%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:12.3%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.68%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:12.3%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.68%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:12.3%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31, 2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-Average Amortization Period  (in years)</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Gross</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Net</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_33d62697-2649-49fd-8b0d-fb51d9eda815" contextRef="C_aa784e85-d2ad-412c-aad8-fa57df245e2f" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4556d4dd-9836-44b8-a07b-f4df878de63a" contextRef="C_aa784e85-d2ad-412c-aad8-fa57df245e2f" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,470</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a4cfc775-b769-43cc-8f86-aaba521fea31" contextRef="C_aa784e85-d2ad-412c-aad8-fa57df245e2f" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,307</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3df35b8b-c3af-4b2c-af3a-98fe07a569af" contextRef="C_aa784e85-d2ad-412c-aad8-fa57df245e2f" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,163</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Acquired software technology</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_30233abb-48a6-4dbf-aa92-7a778790cdd6" contextRef="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_edef81a2-9f68-4109-a7ee-79c85314ff5c" contextRef="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">16,340</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_953069aa-9317-43df-b8e5-dfe8446e5a73" contextRef="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,911</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4ce34004-8bde-4e72-b32f-a1a070b02362" contextRef="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,429</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Patents and intellectual property</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_768f8bd4-e768-4d1d-b4ca-13c7591dca33" contextRef="C_331903be-002f-464f-9997-7eca4ed0a3ae" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c9f03220-dcbd-4025-be25-2955682414ff" contextRef="C_331903be-002f-464f-9997-7eca4ed0a3ae" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,068</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_228ad155-141a-4552-bcdf-21d0ddb6a023" contextRef="C_331903be-002f-464f-9997-7eca4ed0a3ae" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,411</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_69ebe2bf-147f-405b-90a8-c37b65dfae6f" contextRef="C_331903be-002f-464f-9997-7eca4ed0a3ae" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">657</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Tradename</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><ix:nonNumeric id="F_7d1863b0-c860-480b-9af8-7f13527be2c0" contextRef="C_f15479da-3aec-4335-9189-a02717a927bd" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_11f42e0e-749e-4433-810c-f7caa91256dd" contextRef="C_f15479da-3aec-4335-9189-a02717a927bd" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,100</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_43d5fc39-ad02-44a4-8d0d-a15e55ecb5cc" contextRef="C_f15479da-3aec-4335-9189-a02717a927bd" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,167</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_24029e40-2659-433e-9bf7-3b418b151113" contextRef="C_f15479da-3aec-4335-9189-a02717a927bd" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">933</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total intangible assets, net</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_20c8f21c-c3ea-45cf-a048-0b5bbb6fb7c3" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:FiniteLivedIntangibleAssetsGross" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">45,978</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a383b06a-1f0c-4fa7-941c-3bde45ccd590" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">12,796</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5f69d698-06c4-4550-a730-aa08f7b1f5c5" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">33,182</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:continuation></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Intangible amortization expense was approximately $0.9 million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b372e3b1-b6cb-42a1-974d-ddd7f5b0ce54" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2025 and 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, respectively. Intangible amortization expense was approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a40d913a-7b9f-44b5-8fed-2c806e30ecca" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:AmortizationOfIntangibleAssets" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">1.9</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million for both of the six-month periods ended June 30, 2025 and 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_b7f7a86e-2267-421e-bebf-0e31de78f9e3" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" escape="true"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table presents future intangible asset amortization as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025 (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"/>
         <td style="width:13.28%;box-sizing:content-box;"/>
         <td style="width:14.3%;box-sizing:content-box;"/>
         <td style="width:1.68%;box-sizing:content-box;"/>
         <td style="width:14.3%;box-sizing:content-box;"/>
         <td style="width:1.68%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:12.3%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Remainder of 2025</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_cee05d38-4918-442b-b8f0-21f60d197c7f" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,899</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2026</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f42dd826-33a7-4b19-9336-50e5d7fbbc5d" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,809</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_11261417-85e0-411e-88ac-f9c29a6bc9da" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,809</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a1ace530-59ec-47fe-b5f7-ecb5133d17a7" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,758</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7a4a78ad-253d-4e06-9aac-4987e2bc2eb7" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,650</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_aaf2d350-24ea-4ff5-a312-887e434e75b1" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="ssti:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">14,341</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_54308066-1268-4a43-9e6c-097c89f009b3" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:FiniteLivedIntangibleAssetsNet" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">31,266</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div></ix:continuation></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><div><ix:nonNumeric id="F_80ecd192-6d46-41f5-bcf5-91da10082a5e" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:SupplementalBalanceSheetDisclosuresTextBlock" escape="true" continuedAt="F_80ecd192-6d46-41f5-bcf5-91da10082a5e_1"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 6. Details of Certain Condensed Consolidated Balance Sheet Accounts</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_39303e87-cc1b-451d-8da2-6abf23d3a798" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="ssti:ScheduleOfAccountsReceivableAndContractAssetTableTextblock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Accounts receivable and contract assets, net (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:14.8%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.96%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:14.8%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accounts receivable</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_99bca13e-feaf-4534-9327-b75f8b8980e4" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">27,714</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f1e91dad-77cc-4027-b14a-12ad24170278" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AccountsReceivableNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">19,635</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Contract assets</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_029e8b29-f1ea-4f91-aac2-0e383eab4b87" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ContractWithCustomerAssetNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,573</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7b4e2520-86af-4937-8430-419902137ea7" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:ContractWithCustomerAssetNetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,104</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Allowance for credit losses</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c5976b84-bbbf-4cea-b847-1d67dd01766f" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="ssti:FinancingReceivableAllowanceForCreditLossesAdjustment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">544</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_55206f02-d962-468d-a3ff-5b07050df74f" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="ssti:FinancingReceivableAllowanceForCreditLossesAdjustment" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">275</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_86d4d050-76aa-422a-a382-a74075a8f528" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="ssti:AccountsReceivableAndContractAssetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">30,743</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_35ff736e-511a-4edd-a0a0-3b6b50ac2d02" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="ssti:AccountsReceivableAndContractAssetCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">25,464</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_51ecf922-f044-47ff-8a20-7f15df14f251" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Prepaid expenses and other current assets (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:14.8%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.96%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:14.8%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred commissions</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_077bcd2a-46e6-4ef7-a360-738252c06794" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:DeferredCostsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,592</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1475fb7c-a791-4174-b4c1-27bf11683107" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:DeferredCostsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,477</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Prepaid software and licenses</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_69292e55-0dc3-4af3-b8e6-2a47bc73504f" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="ssti:PrepaidSoftwareAndLicensesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,356</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d494ff84-1df0-4915-92bf-7c08a541ad4c" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="ssti:PrepaidSoftwareAndLicensesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,306</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Prepaid insurance</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9a91a042-ffba-401c-8e73-d200ea1c9133" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:PrepaidInsurance" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">154</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_569c3555-08fc-457d-9ea8-326b29d82406" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:PrepaidInsurance" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,069</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Short-term deposits</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dce7e1cb-f65a-4c42-9ca6-a3501cc1f94f" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="ssti:ShortTermDeposits" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">384</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3184bed7-eb4b-46d0-ac68-5a533dcd6b87" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="ssti:ShortTermDeposits" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">581</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other prepaid expenses</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_32e12f8e-5fc0-47eb-9944-21fa61a0649b" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:OtherPrepaidExpenseCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">330</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_80e94d1d-d558-445d-9d00-0cc28ba3fd33" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:OtherPrepaidExpenseCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">448</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_eb8e1b84-b778-483c-a9e4-76249d6c9a63" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,816</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fc1ab171-14a8-4f3e-904d-cdccb5a6ab6e" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">4,881</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_245537a8-59aa-4881-a725-c385d2c8939b" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Other assets (long-term) (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:14.8%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.96%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:14.8%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred commissions</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_345713be-9728-4f9f-9ec6-1f65be5a6896" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:DeferredCosts" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,742</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d016086e-3c09-4474-8c06-edf6b032dcbf" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:DeferredCosts" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,152</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Escrow claim</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9620e378-fb33-43ed-8f0c-c9fe65a5c50a" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="ssti:EscrowClaimReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">357</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_de289f6a-eeba-40fc-884a-37ba886f9b0b" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="ssti:EscrowClaimReceivable" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">581</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a0390392-7d63-4d99-b6d4-9734cf47f298" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:OtherAssetsMiscellaneousNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">131</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a9de7ede-bc4d-4ac5-bfea-b5038f1da4c4" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:OtherAssetsMiscellaneousNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">128</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5bf80fe4-170c-4ce5-9980-1bb8432e157c" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,230</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_12ab82b1-7ae7-4fa0-9e7c-eced83a8b5e6" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:OtherAssetsNoncurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,861</ix:nonFraction></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></ix:nonNumeric></div></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">11</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:continuation id="F_80ecd192-6d46-41f5-bcf5-91da10082a5e_1"><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_150f1275-99b3-4cfa-9026-65433a87fe99" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" escape="true" continuedAt="F_150f1275-99b3-4cfa-9026-65433a87fe99_1"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Accrued expenses and other current liabilities (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:14.8%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.96%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:14.8%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Personnel-related accruals</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ad7f8253-8de9-44a4-ac4d-70f0739f4541" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AccruedEmployeeBenefitsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">5,410</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d9521bf9-c9ba-4ebd-a463-574b6aa42e9c" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AccruedEmployeeBenefitsCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">8,252</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating lease liabilities, current</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_28050ae7-14c6-4b05-927f-90566edb7377" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">922</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1c651566-62c9-469c-9a51-5777002dfdf5" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:OperatingLeaseLiabilityCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">909</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Professional fees</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_91a9738c-6b5a-4cd2-bfe8-6424a6891da2" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AccruedProfessionalFeesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">169</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_02210f61-cbab-4d74-a57f-6e245b14c4ef" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AccruedProfessionalFeesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">137</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales/use tax payable</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_43c8bf46-a69b-4a67-a452-e89d52e9e6d2" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:SalesAndExciseTaxPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">243</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b803c6ea-983e-4bad-bf1d-d79600f3cafd" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:SalesAndExciseTaxPayableCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">141</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_89bab162-4b23-4697-915a-b2b638850d4f" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:OtherLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">409</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_fb470d5c-6c9a-423e-a51a-253fd16b78c3" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:OtherLiabilitiesCurrent" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">777</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_5acbdfc3-2d2a-4e94-9663-5c376c529f50" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,153</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a5c156f1-9ff6-495b-9054-17777c897f90" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:AccruedLiabilitiesAndOtherLiabilities" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">10,216</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div></ix:continuation></div><div><ix:continuation id="F_150f1275-99b3-4cfa-9026-65433a87fe99_1"></ix:continuation></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_8c6ceb32-ed5c-4188-85a9-0241ef363672" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:RelatedPartyTransactionsDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 7. Related Party Transactions</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the three and six months ended June 30, 2025, the Company recognized approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_81c37f55-df33-4fe6-a2d8-0ea0fbf7d9a3" contextRef="C_42592731-dd58-4d1e-a772-4aad8e45dd8a" name="us-gaap:Revenues" unitRef="U_USD" decimals="0" format="ixt:num-dot-decimal">7,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ec6f6950-f8b2-4f6b-aa4e-40d91f810d14" contextRef="C_2e8acf49-5b0f-4ec6-9d54-86be52d90e50" name="us-gaap:Revenues" unitRef="U_USD" decimals="0" format="ixt:num-dot-decimal">18,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, respectively,</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> in revenues from SoundThinking Labs projects with charitable organizations that have received donations from one of the Company&#8217;s former directors and from one of the Company&#8217;s significant stockholders. During the three and six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ae8bde15-c3c0-4522-a374-00ca922a8349" contextRef="C_7b0882ee-fb75-4965-babb-4e2a0276df3b" name="us-gaap:Revenues" unitRef="U_USD" decimals="0" format="ixt:num-dot-decimal">47,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2c4df855-c68e-48ac-90b0-ea4fdb4deb3b" contextRef="C_7f307dc4-8f88-42cf-845e-32135157d801" name="us-gaap:Revenues" unitRef="U_USD" decimals="0" format="ixt:num-dot-decimal">80,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, respectively, in revenues from such SoundThinking Labs projects.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_92a1113d-4c41-4a82-9ae4-17f07688bd7d" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 8. Restructuring</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the second quarter of 2024, the Company restructured its workforce and eliminated </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_13d61d4b-3e7e-4cd0-8f0b-92d6c59d8167" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of its total headcount to more effectively allocate its resources and to reduce operational costs. Additionally, the Company terminated a building lease early for a location that was no longer in use.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Restructuring expense related to the workforce reduction during the three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> amounted to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_94629a63-3abf-4578-8018-9fee28626512" contextRef="C_ee5af4e5-51ad-43c8-bcf9-926cb7469ead" name="us-gaap:RestructuringCharges" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million, consisting of cash expenditures for </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_ac3bc36c-c6de-4913-9dbf-40bd9d6dc5bf;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">severance and other employee separation-related costs</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">. Restructuring expenses related to the lease termination were $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0a837ce4-7414-4b46-bf2a-14df849e810b" contextRef="C_fb6ff255-9e0d-49c9-9e01-1a8bdc17edb2" name="us-gaap:RestructuringCharges" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.1</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million, comprising of early </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_5676ee34-2e1d-48d3-a5fc-631384d2056b;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">termination fees and monthly rent</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">. These restructuring expenses were recorded in other expense, net, in the unaudited condensed consolidated statement of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As of June 30, 2024, net restructuring liabilities totaled approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d5fd4bc1-4626-46ed-94ed-901064b0b6f1" contextRef="C_bd3184cd-0e87-444d-88ae-9fcbbbb8c01f" name="us-gaap:RestructuringReserveCurrent" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million and were included in accrued expenses and other current liabilities on the Company's unaudited condensed consolidated balance sheet.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">There was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7189beda-551f-4028-89c7-379f303d55b0" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:RestructuringCharges" unitRef="U_USD" decimals="INF" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> restructuring activity during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</span></p></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_19cc751c-6fb1-4951-a006-f46ad9060b4f" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 9. Stock Repurchase Program</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company repurchased 65,063 shares of its common stock at an average price of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4fcd9a48-eeaa-4be3-a342-f679708b27e5" contextRef="C_efff8137-a1c7-4c57-a0b2-029672737b52" name="us-gaap:TreasuryStockAcquiredAverageCostPerShare" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">14.92</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share for a total of $1.0 million under its stock repurchase program. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company repurchased </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8a22fba0-7f34-4e68-a581-a3946395e800" contextRef="C_d941df6c-f81f-4882-a6e7-ac57265797f8" name="us-gaap:StockRepurchasedDuringPeriodShares" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">134,150</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares of its common stock at an average price of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ef2839ba-eb14-4d89-b19c-ed787c1b0cea" contextRef="C_d941df6c-f81f-4882-a6e7-ac57265797f8" name="us-gaap:TreasuryStockAcquiredAverageCostPerShare" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">14.86</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share for a total of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a75c1606-9c62-4b1e-bead-1e711c096f50" contextRef="C_d941df6c-f81f-4882-a6e7-ac57265797f8" name="us-gaap:StockRepurchasedDuringPeriodValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">2.0</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million under its stock repurchase program.</span></p></ix:nonNumeric></div><div><ix:nonNumeric id="F_4bba14d5-26f1-440e-9490-a8594f2a205c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:EarningsPerShareTextBlock" escape="true" continuedAt="F_4bba14d5-26f1-440e-9490-a8594f2a205c_1"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 10. Net Income (Loss) per Share</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The computation of basic net income (loss) per share is based on the weighted-average number of shares of common stock outstanding during each period. The computation of diluted net income (loss) per share is based on the weighted-average number of shares outstanding during the period plus, when their effect is dilutive, incremental shares consisting of shares subject to stock options, restricted stock units, employee stock purchase plan purchase rights and warrants.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">12</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:continuation id="F_4bba14d5-26f1-440e-9490-a8594f2a205c_1"><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_fb960793-7ffb-45b5-9786-d0283875b6f8" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" escape="true"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table summarizes the computation of basic and diluted net income (loss) per share (in thousands, except share and per share data):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:39.4%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.92%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.64%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.92%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.64%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.92%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.64%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.92%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Numerator:</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6a5f3559-5470-43b0-8fda-b49f9a5c4a36" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,120</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_68029a37-8736-459b-ad05-47b4cc605abd" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">752</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7d6d4fc1-a41e-4e44-86fe-cc93dffbae12" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">4,604</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2b91d2a8-c12f-421c-82c7-33c19a34a785" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:NetIncomeLoss" unitRef="U_USD" scale="3" decimals="-3" sign="-" format="ixt:num-dot-decimal">3,661</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Denominator:</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Weighted-average shares outstanding, basic and diluted</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f1b228d4-59f2-40fd-8de5-9cdeef42246b" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal"><ix:nonFraction id="F_4ac00e73-b267-4425-9043-1dbbc7d74f9a" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">12,712,191</ix:nonFraction></ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_729c6fe6-5452-4183-aee8-943993219160" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal"><ix:nonFraction id="F_d65b16df-7eee-4804-942e-5509821c844f" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">12,792,952</ix:nonFraction></ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bbbcaff2-d0df-4cb0-a000-f7e73a9b3086" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal"><ix:nonFraction id="F_013fc88c-cd7c-4175-9c70-1e6a918704b9" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">12,680,456</ix:nonFraction></ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c822d9a2-9353-4bf1-80ec-cf2b2ba2d779" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal"><ix:nonFraction id="F_ab9c9fa4-f3c0-4d96-ab93-3a352e8cf7d2" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" unitRef="U_shares" decimals="0" format="ixt:num-dot-decimal">12,781,910</ix:nonFraction></ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss per share, basic and diluted</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dbc35c5b-1eed-47f3-9ae5-890bf6c3edce" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:EarningsPerShareDiluted" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_0b347a1e-bafb-40a1-8c5e-eb83c75438c8" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:EarningsPerShareBasic" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.24</ix:nonFraction></ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4943d764-fff2-4d62-a894-3d448e65b654" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:EarningsPerShareBasic" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_f92c1ccd-4c2c-48bc-8f76-3dcff44bab00" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:EarningsPerShareDiluted" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.06</ix:nonFraction></ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3fb973ed-31e3-4c4a-9cd8-9d89452b0a73" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:EarningsPerShareBasic" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_752101de-e560-4d6f-b0a9-1b6381f671e8" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:EarningsPerShareDiluted" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.36</ix:nonFraction></ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2318c716-8232-4e11-a54f-1086d3f6ee7f" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:EarningsPerShareBasic" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal"><ix:nonFraction id="F_81446afa-f677-4345-b8a7-77e1d1a9dc4a" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:EarningsPerShareDiluted" unitRef="U_USDollarShare" scale="0" decimals="2" sign="-" format="ixt:num-dot-decimal">0.29</ix:nonFraction></ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_ab008f3f-f390-4a62-8a08-633d8b524879" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" escape="true"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Th</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">e following potentially dilutive shares outstanding at the end of the periods presented were excluded in the calculation of diluted net loss per share as the effect would have been anti-dilutive:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:52.08%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.18%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.18%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.18%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.38%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Options to purchase common stock</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f8c8aa44-b424-477b-8aae-2f61e63834a5" contextRef="C_00788857-046d-4c69-aa56-c18129ececda" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,772,338</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_64f4abca-70ca-4a47-b0c0-26cf9c754aad" contextRef="C_152ee14b-042e-4ec9-b803-f42f5b52286c" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,796,901</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_15cbba54-9ca5-4f7f-abe4-0b70d80f8242" contextRef="C_84044923-7b4d-400c-940b-2dbe23977c7f" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,772,338</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8fdaf8e2-1790-47bf-8a37-49ea573a57c3" contextRef="C_4a6effc2-db48-4ed0-bc19-ca91fdc64c5c" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,796,901</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Restricted stock units exercisable and expected to vest</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a3f47577-6119-49e9-b9d4-1a1f2f61d1c4" contextRef="C_11c952fc-f218-45d1-8ecb-1454c429f16a" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">2,592,981</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c5a91913-ce1c-4bec-9edd-ec2f1c21ee8b" contextRef="C_215c1c9a-7dc0-4581-a82e-4d67cd225feb" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,056,904</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a201fe4d-f921-4917-9fef-d9e6f66670ae" contextRef="C_c44e46eb-f68f-427c-95df-22ed0f0f0042" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">2,592,981</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_abf70cd2-480d-4ef0-afce-2ec3f34a064d" contextRef="C_a881e63b-df7d-4eb0-9ff0-ea878ddb79a4" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,056,904</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Estimated number of shares issuable under 2017 ESPP</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,152</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,124</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,152</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,124</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6061b16b-4d1b-4032-8950-fe19be2b6c54" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">4,385,471</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7d9eece8-b50b-42d1-be17-79632a6e5a0c" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">2,878,929</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dfec9078-c610-4ca8-b2bc-e99759944aa9" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">4,385,471</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4789be40-5e9e-45be-9bc9-3627cbab1f2e" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">2,878,929</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div></ix:continuation></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><div><ix:nonNumeric id="F_7faadfe2-9ca1-4eac-8830-fdeaa2df4e0d" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" escape="true" continuedAt="F_7faadfe2-9ca1-4eac-8830-fdeaa2df4e0d_1"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 11. Equity Incentive Plans</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Stock options</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_3607ef5a-9a1b-481a-b04c-054181cfaf1b" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" escape="true"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A summary of option activities under the 2005 Stock Plan, as amended in January 2010 and November 2012 (the &#8220;2005 Plan&#8221;) and 2017 Equity Incentive Plan (the &#8220;2017 Plan&#8221;) during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 is as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:34.327%;box-sizing:content-box;"/>
         <td style="width:1.02%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.162%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.48%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.102%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.48%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.102%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.72%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:9.102%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.48%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:10.022%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Number<br/>of Options<br/>Outstanding</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Exercise<br/>Price</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Grant Date Fair Value per Option</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Aggregate Intrinsic Value Exercised (in thousands)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Remaining Contractual term (in years)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Outstanding at December 31, 2024</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_b45fc051-9c28-4778-9178-af9dd2f07fa9" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,774,388</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_16acd870-35fb-47e9-840a-3a4ebc1aa5d9" contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">26.62</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0ca7ed4f-902a-492e-a02a-9398af126d1e" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">95,275</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6fac6d25-5217-4ca0-a004-766b578352d3" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">15.92</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_863e4d8b-1f05-4bda-99fb-82bb6753c1b2" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">9.59</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercised</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_229c73da-100b-4dff-aef0-d2baa85b9815" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">4,104</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7d82820f-811e-4b5a-843c-2bb9d1ca137c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">4.48</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ec878692-4428-4c14-87db-45cb8b7a2663" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">46</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_722f2da1-a747-48a2-aca8-a6769b431030" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">93,221</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_237e0c59-f4f0-4bdb-9b86-847d5357492c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">23.86</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Outstanding at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_938ab547-1e70-4c59-89c2-a5f5817dcb87" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,772,338</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_384ca838-d6cb-4fba-8dc7-278f403e59e0" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">26.24</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercisable at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_16a0862b-cda1-441a-8768-b0cf2e1e960a" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,265,627</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1c334faa-ae71-43be-8352-ad1446cc7d2a" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">27.89</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Vested and expected to vest at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f37be4d8-4706-4c11-af32-088a37354d20" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,772,338</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7e8ac3a8-d766-4e02-9de9-1336e6b1270f" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">26.24</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_82dd8b10-b4c9-4119-a66c-c5aa6900a46f" contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">951</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span><ix:nonNumeric id="F_25d36d36-c20c-4a3b-af72-2256f7a2ade0" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.51</span></ix:nonNumeric></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Under an &#8220;evergreen&#8221; provision, the number of shares of common stock reserved for issuance under the 2017 Plan will automatically increase on </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_b1c4d84e-3b72-40e0-b7ec-4d5e44bff122" contextRef="C_c499d9d7-4eb7-4b78-a59a-9048a418b043" name="ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" format="ixt:date-monthname-day-en"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">January 1</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> of each year, beginning on </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_6ba4b5aa-7dff-428a-99cb-f8f6fceb90fe" contextRef="C_c499d9d7-4eb7-4b78-a59a-9048a418b043" name="ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">January 1, 2018</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and ending on and including </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_1f55fd42-f9f0-43bf-891d-da4782429b9d" contextRef="C_c499d9d7-4eb7-4b78-a59a-9048a418b043" name="ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">January 1, 2027</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, by </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0a0b7bd2-d702-4aca-91ac-5490c75934a6" contextRef="C_4ea795a4-c3a9-46c6-81e4-e011b345ce17" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the total number of shares of the Company&#8217;s common stock outstanding on December 31 of the preceding calendar year or a lesser number of shares determined by the Board. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">accordance with the evergreen provision,</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">13</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:continuation id="F_7faadfe2-9ca1-4eac-8830-fdeaa2df4e0d_1" continuedAt="F_7faadfe2-9ca1-4eac-8830-fdeaa2df4e0d_2"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">number of shares of common stock reserved for issuance under the 2017 Plan was increased on January 1, 2025 by </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2fe3d6db-d338-4538-9e3b-542ddd3bb624" contextRef="C_8cb7d674-0eec-453a-ab60-6d6b89523255" name="ssti:IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">631,724</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares, which was equal to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c8b7505d-927f-407a-a169-3ee3a3b55d52" contextRef="C_da16747c-e84d-413d-8f6d-ae00ad01f35f" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the total number of shares of common stock outstanding on December 31, 2024.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Restricted stock units</span></p><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><ix:nonNumeric id="F_641130dc-2aae-4137-80d8-357ac7ddc00a" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" escape="true"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A summary of restricted stock unit (&#8220;RSU&#8221;) activities under the 2017 Plan during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 is as follows:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:46.589%;box-sizing:content-box;"/>
         <td style="width:1.54%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:15.703%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:2.02%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:13.063%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:2.02%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:13.063%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Number<br/>of RSUs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Grant Date Fair Value per RSU</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Aggregate Fair Value of RSUs Vested (in thousands)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Unvested RSUs at December 31, 2024</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c08bf560-82be-49ed-9170-851a32ea3823" contextRef="C_41e5a601-8395-4d04-877b-e251abf8096e" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">966,131</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c538580f-b6ca-4579-86be-3f59b9d31c8a" contextRef="C_41e5a601-8395-4d04-877b-e251abf8096e" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">19.04</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2a0a8f1f-cd01-4d27-ac7d-53900e3b36c1" contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">1,852,388</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_55afb516-1b56-4f2d-94ff-197169ac1ea9" contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">16.10</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Vested</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1b8415bc-c30a-42ed-9865-b5ada749ff21" contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">174,891</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_a73fb7fb-af1e-4f2b-8575-43070dea8d2f" contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">19.83</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6a77e3e2-9ab4-44e2-b88a-9847f3a956e5" contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,785</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Forfeited</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_eb534572-9d18-4c68-845a-1f798b941af2" contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">50,647</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_83c776a0-d13f-4277-8ead-6c586ff49def" contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">16.89</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Unvested RSUs at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_774f7d30-1191-4349-8c2e-41f552237625" contextRef="C_f9f6333b-04ec-42ae-9629-1ce4a459849a" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">2,592,981</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_042e328f-0c79-43c7-90d1-85121e57edfd" contextRef="C_f9f6333b-04ec-42ae-9629-1ce4a459849a" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">16.93</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Performance-based restricted stock units:</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the year ended December 31, 2024, the Company granted to members of the Company&#8217;s management team RSU awards with performance-based vesting conditions (&#8220;PSUs&#8221;)</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, totaling </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_bdf99d81-1c45-4ad2-b86c-f956a15f5fa8" contextRef="C_91b2ce07-dfb6-4e6c-9d04-b6c524a9e011" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">544,228</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares at a grant date fair value of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d5de596f-a3d9-4a7e-a866-fb1ef7d1ec30" contextRef="C_91b2ce07-dfb6-4e6c-9d04-b6c524a9e011" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">17.74</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share, the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2026, based on </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2026, as </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. Compensation expense related to these awards was approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e76bf2f8-95e2-4cbf-ba83-236d601165fa" contextRef="C_4365f23e-26c5-4839-ad78-f15badd94069" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8b011dcd-1588-4537-84b5-0ddf5b0c0cc1" contextRef="C_c64f7f46-cb61-4369-9fc6-b7afa2f18503" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2025 and 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, respectively. Compensation expense related to these awards was approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_7fdcbc2a-63d6-4613-9575-0ef932860fbc" contextRef="C_b3eb17b9-bc0f-444d-aa79-2e6620582d94" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.5</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6ff10be9-d9cd-4da4-a8db-7d917a1f61ea" contextRef="C_dd1e3ab7-23ba-44dc-87b4-76262ae7986f" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 and 2024, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company granted to members of the Company&#8217;s management team PSUs of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_2158bf4a-318a-42b9-bc28-c7e10b4fded3" contextRef="C_b3eb17b9-bc0f-444d-aa79-2e6620582d94" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">813,348</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares with a grant date fair value of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_715ada71-8bd0-4815-b6db-07968fc692af" contextRef="C_b3eb17b9-bc0f-444d-aa79-2e6620582d94" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">16.43</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share, the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2027, based on </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2027, as determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. As of June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_d4f2b496-0486-412c-82a9-06d6cfc1a5de" contextRef="C_c3ed7e52-b29e-4543-a3e9-89ca9620a19d" name="ssti:Share-BasedPaymentArrangementExpenseAfterTargetAchievement" unitRef="U_USD" scale="6" decimals="-6" format="ixt-sec:numwordsen">no</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> expense was recorded related to these PSUs as the achievement of the minimum target for 2027 was not probable of being met.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In February 2025, the Company introduced a PSU-based performance bonus plan (&#8220;PSU Bonus Plan&#8221;) for exempt employees. Under the PSU Bonus plan, employees may receive up to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3f300367-ae97-42e4-a26f-a7e82985be97" contextRef="C_38ec3cda-b94f-4571-bc72-ff12471e4a3e" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">133,261</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares with a grant date fair value of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_c346329b-05ae-43d8-825d-c2d52fd8abb1" contextRef="C_38ec3cda-b94f-4571-bc72-ff12471e4a3e" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">15.12</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the closing stock price on the grant date, which vest in one installment on the certification date and occur as soon as administratively practicable following the end of 2025, based on the satisfaction of the Company obtaining certain performance criteria. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company determined a portion of the shares granted under the PSU Bonus Plan are probable of vesting and recorded $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3f49efe3-feb2-4b62-81e6-0fc5eafec4e9" contextRef="C_15e7cb42-5ba0-4619-9a77-488368df9c29" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.4</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8f511f82-bf8c-457e-a96b-6c9bc4d92367" contextRef="C_68af483f-b9d5-413f-88c0-157eae19d9f0" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.8</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million expense related to the PSU, for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three and six months ended June 30, 2025, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company granted to members of the Company&#8217;s leadership team PSUs of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6fdc9606-7cc9-48f5-ab5a-9cb649340cfb" contextRef="C_68af483f-b9d5-413f-88c0-157eae19d9f0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">448,222</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares with a grant date fair value of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1d1476c2-249b-4277-8092-9964ca64eca1" contextRef="C_68af483f-b9d5-413f-88c0-157eae19d9f0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" unitRef="U_USDollarShare" scale="0" decimals="2" format="ixt:num-dot-decimal">15.51</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share,  the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2026, based on </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2026, as determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. As of June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company determined a portion of the shares granted under the PSU Bonus Plan are probable of vesting and recorded $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f91b104e-a659-453e-9150-cbf6c3125f6f" contextRef="C_68af483f-b9d5-413f-88c0-157eae19d9f0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" unitRef="U_USD" scale="6" decimals="-5" format="ixt:num-dot-decimal">0.3</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></ix:continuation></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">14</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div><ix:continuation id="F_7faadfe2-9ca1-4eac-8830-fdeaa2df4e0d_2"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">2017 Employee Stock Purchase Plan</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Under the 2017 ESPP, eligible employees may purchase shares of our common stock through payroll deductions that cannot exceed </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ecbdc9de-2b91-470f-8374-c29c1ccf351e" contextRef="C_02ead27e-6a8e-41d6-ae28-361e2f9ec745" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">15</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the employee&#8217;s salary. </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_5fa01a62-3e02-4272-bff6-8521c98028ed" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The 2017 ESPP provides for a </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_52e495b3-d92c-4419-906e-0899f79bf87c" contextRef="C_222eed63-1852-43c2-aeb8-370555ad7df7" name="ssti:EmployeeStockPurchasePlanOfferingPeriod" format="ixt-sec:durwordsen"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six-month</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> offering period. At the end of the purchase period, eligible employees are permitted to purchase shares of common stock at the lower of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3784686c-12e8-4e62-904a-530e6ebe9781" contextRef="C_222eed63-1852-43c2-aeb8-370555ad7df7" name="ssti:CommonStockFairMarketValuePercentage" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">85</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the fair market value at the beginning or end of the offering period subject to tax limitations on the total value of the purchase.</span></ix:nonNumeric></span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2017 ESPP contains an &#8220;evergreen&#8221; provision that provides for an automatic annual share increase on </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_4427cb98-46ed-4b94-945b-9941a2314da5" contextRef="C_222eed63-1852-43c2-aeb8-370555ad7df7" name="ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" format="ixt:date-monthname-day-en"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">January 1</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> of each year, in an amount equal to the lesser of (1) </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_6d5a54c4-8f63-4caa-b183-86a22cac64bf" contextRef="C_efdaef5b-5b12-4dca-b5b7-438ed2bd600c" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" unitRef="U_pure" scale="-2" decimals="2" format="ixt:num-dot-decimal">2</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the total number of shares of common stock outstanding on December 31st of the preceding calendar year, (2) </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_48fcadfc-1ff3-403c-b3dd-95f0ab2faa9e" contextRef="C_efdaef5b-5b12-4dca-b5b7-438ed2bd600c" name="ssti:PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">150,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares or (3) such number of shares as determined by the Board. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In accordance with the evergreen provision, the number of shares of common stock reserved for issuance under the 2017 ESPP was increased on January 1, 2025 by </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_62399249-6954-466e-ac14-ee561408ce40" contextRef="C_b82221ba-d305-4d5c-b5d9-f782b830a474" name="ssti:IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" unitRef="U_shares" decimals="INF" format="ixt:num-dot-decimal">150,000</ix:nonFraction></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares. The number of shares available for grant under the 2017 ESPP was 675,768 as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_90943963-1fc8-47fa-acc9-9f432c2a771d" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" escape="true" continuedAt="F_90943963-1fc8-47fa-acc9-9f432c2a771d_1"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense associated with the 2005 Plan, 2017 Plan and 2017 ESPP is recorded in the condensed consolidated statements of operations and was allocated as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:39.4%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.92%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.64%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.92%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.64%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.92%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:1.64%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
         <td style="width:11.92%;box-sizing:content-box;"/>
         <td style="width:1%;box-sizing:content-box;"/>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cost of revenues</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_0ec5d12a-0447-454a-b1ea-e5bb897fd8bf" contextRef="C_0dabec57-30b9-451f-902e-82daad6dee8b" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">620</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9648d9bf-1f1d-455d-a77a-652842eae0d1" contextRef="C_63e472be-2a49-4250-bef6-e201d8efb971" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">399</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e40d41e2-f684-4283-ad89-7756d4d1a429" contextRef="C_d8c8ff70-8c1e-4636-90df-209e9bb41ad1" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,268</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_4d7f2192-3169-4964-944a-9b99f7b581e4" contextRef="C_dc085326-df1d-4bca-869c-7c0666de4fd2" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">839</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_86779b98-1e64-4032-9de4-44c7cfa90e4b" contextRef="C_7ad02a42-8716-4e47-aea3-54300690d968" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">574</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_1fb4561c-c14f-4e92-a86c-633796a8a37a" contextRef="C_6a162941-7409-4632-9530-98f1f94edcd2" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">584</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_56b443d3-86c3-461c-8599-f81d55bded58" contextRef="C_b649e2f3-5249-49cc-b349-177bc0b70dd6" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,165</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_de50465d-3cb7-4ec8-a83e-fa1b70aca71b" contextRef="C_5181a2e5-f233-48ac-a043-77203cfb9c0c" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,185</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_75e40908-2698-4a70-a8ef-94177a8f1656" contextRef="C_6708ae2b-8c97-48c1-8004-36c3543b88a1" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">444</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_dd3345e9-1228-43ec-b594-312bae09fcfc" contextRef="C_a5b46cc5-ee75-4f78-b9e3-5924c08e8bcd" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">303</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_77d36835-92cb-4163-8fe7-d907a8c4610e" contextRef="C_b84ef990-8fc4-434e-9a91-9580c5f0e626" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">837</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_9e7cd4c5-8465-4eac-ac86-b3e787970dc5" contextRef="C_4b28ba2d-f633-4bdf-8f0a-fb61e710f0f4" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">605</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_8f4727ef-0c8e-44a5-b2fc-96b4199b004c" contextRef="C_aecffb60-0955-4065-8e23-f7b6c6ef8220" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">2,203</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_3eb12e09-d1a9-4cde-bdaf-51e5daec3f3e" contextRef="C_9ea62ede-f893-4a0d-9933-f4ac1f5f184f" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">1,860</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_544f2ee2-a329-4487-a981-c5fa2a1038ef" contextRef="C_c7befd02-2694-424b-99d9-0515fa4da0f4" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,975</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_e4db62cc-f914-4769-a793-a4d3c5b53928" contextRef="C_3ead49f6-7b56-492b-ae09-7a3382b38dc5" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,444</ix:nonFraction></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f7b4e095-5a7e-44e2-b3f2-f95fefe34f3c" contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,841</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_ce9a03bf-980c-4a01-bf8a-284cfc159b99" contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">3,146</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_74644fc9-ff00-4b2f-b523-13b563f8cafa" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">7,245</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"><ix:nonFraction id="F_f6f3082b-3e6f-480c-979e-3ae64f8771ae" contextRef="C_179523cc-6537-430e-abea-d535e4dac07a" name="us-gaap:AllocatedShareBasedCompensationExpense" unitRef="U_USD" scale="3" decimals="-3" format="ixt:num-dot-decimal">6,073</ix:nonFraction></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></ix:nonNumeric></div></ix:continuation></div><div><ix:continuation id="F_90943963-1fc8-47fa-acc9-9f432c2a771d_1"></ix:continuation></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_1ca64c78-a234-45ef-8cc3-4f550e1cf05c" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:DebtDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 12. </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Financing Arrangements</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company has a revolving loan facility (the &#8220;Revolving Facility&#8221;) under its Credit Agreement with Umpqua Bank (the &#8220;Umpqua Credit Agreement&#8221;) with a revolving credit commitment of $25.0 million and letter of credit sub-facility of $7.5 million, that matures on October 15, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any amounts outstanding under the letter of credit sub-facility reduce the amount available for the Company to borrow under the Revolving Facility. The available loan facility as of June 30, 2025 and December 31, 2024 was approximately $21.0 million, for both periods. As of June 30, 2025 and December 31, 2024, there was $4.0 million outstanding on the Company&#8217;s line of credit, which the Company borrowed in August 2023 to partially fund the acquisition of SafePointe. The interest expense recorded for the three and six months ended June 30, 2025 was immaterial based on a weighted-average interest rates of 6.28% and 6.29%, respectively. For the three and six months ended June 30, 2024, the interest expense recorded was $0.1 million and $0.2 million, respectively. As of June 30, 2025 and December 31, 2024, the Company was in compliance with all covenants and other requirements set forth in the Umpqua Credit Agreement.</span></p></ix:nonNumeric></div><div style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_ce64fbb2-e663-4431-ad86-b06a9ab24964" contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" escape="true"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 13. Commitments and Contingencies</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company may become subject to legal proceedings, as well as demands and claims that arise in the normal course of business. Such claims, even if not meritorious, could result in the expenditure of significant financial and management resources. The Company makes a provision for a liability relating to legal matters when it is both probable that a liability has been incurred and the amount of the loss can be reasonably estimated. These provisions are reviewed and adjusted to include the impacts of negotiations, estimated settlements, legal rulings, advice of legal counsel, and other information and events pertaining to a particular matter.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">An unfavorable outcome on any litigation matters could require payment of substantial damages, or, in connection with any intellectual property infringement claims, could require the Company to pay ongoing royalty payments or could prevent the Company from selling certain of its products. As a result, a settlement of, or an unfavorable outcome on, any of the matters referenced above or other litigation matters could have a material adverse effect on the Company&#8217;s business, operating results, financial condition and cash flows.</span></p></ix:nonNumeric></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">15</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 14. Segment Reporting</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company operates as a single operating segment. The Company&#8217;s chief operating decision maker is one individual and has the role of President and Chief Executive Officer (the &#8220;CODM&#8221;). The CODM reviews financial information including operating results and assets on a consolidated basis and is regularly provided with only the consolidated expenses as noted on the face of the statement of operations.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">16</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="managements_discussion_analysis_financia"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Item 2. Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">You should read the following discussion and analysis of our financial condition and results of operations together with our unaudited condensed consolidated financial statements and accompanying notes included in this Quarterly Report on Form 10-Q and the financial statements and accompanying notes and other financial information in the Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations included in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024, filed with the Securities and Exchange Commission (&#8220;SEC&#8221;) on March 31, 2025. This Quarterly Report on Form 10-Q contains &#8220;forward-looking statements&#8221; within the meaning of Section 27A of the Securities Act of 1933, as amended (the &#8220;Securities Act&#8221;), and Section 21E of the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;). These statements are often identified by the use of words such as &#8220;anticipate,&#8221; &#8220;believe,&#8221; &#8220;continue,&#8221; &#8220;could,&#8221; &#8220;estimate,&#8221; &#8220;expect,&#8221; &#8220;intend,&#8221; &#8220;may,&#8221; &#8220;plan,&#8221; &#8220;project,&#8221; &#8220;will,&#8221; &#8220;would&#8221; or the negative or plural of these words or similar expressions or variations. Such forward-looking statements are subject to a number of risks, uncertainties, assumptions and other factors that could cause actual results and the timing of certain events to differ materially from future results expressed or implied by the forward-looking statements. Factors that could cause or contribute to such differences include, but are not limited to, those identified herein, those discussed in the section titled &#8220;Risk Factors&#8221; set forth in Part II, Item 1A of this Quarterly Report on Form 10-Q and in our other SEC filings. You should not rely upon forward-looking statements as predictions of future events. Furthermore, such forward-looking statements speak only as of the date of this report. Except as required by law, we undertake no obligation to update any forward-looking statements to reflect events or circumstances after the date of such statements.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Overview</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We are a leading public safety technology company that combines data-driven solutions and strategic advisory services for law enforcement, security teams and civic leadership. In April 2023, we changed the company name, ShotSpotter, Inc., to SoundThinking, Inc., reflecting our broader impact on public safety through a growing set of industry-leading law enforcement tools and community-focused solutions. As part of the rebranding, we introduced our SafetySmart</span><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:4.355pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">TM</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> platform that includes six data-driven tools consisting of: (i) our flagship product, ShotSpotter</span><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:4.355pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#174;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, our leading outdoor gunshot detection, location and alerting system trusted by 179</span><span style="color:#0000ff;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">cities and 22 universities and corporations as of June 30, 2025, (ii) CrimeTracer&#153;, a leading law enforcement search engine that enables investigators to search through more than one billion criminal justice records from across jurisdictions to generate tactical leads and quickly make intelligent connections to solve cases, (iii) CaseBuilder&#153;, a one-stop investigative management system for tracking, reporting, and collaborating on cases, (iv) ResourceRouter</span><span style="color:#12191c;white-space:pre-wrap;font-size:10pt;font-family:'Nunito',sans-serif;font-kerning:none;min-width:fit-content;">&#153;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, which directs the deployment of patrol and community anti-violence resources in an objective way to help maximize the impact of limited resources and improve community safety, (v) PlateRanger&#153; powered by Rekor</span><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:4.355pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#174;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, an ALPR and vehicle identification solution that leverages AI and machine learning to enhance investigative efficiency and provide real-time data sharing for law enforcement, introduced in July 2024 through a strategic partnership with Rekor Systems, Inc. and (vi) SafePointe</span><span style="color:#12191c;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#153;,</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> an AI-based weapons detection system. We also offer other security solutions within our flagship product offering ShotSpotter, including ShotSpotter for Campus and ShotSpotter for Corporate that are typically smaller-scale deployments of ShotSpotter vertically marketed to universities, corporate campuses and key infrastructure centers to mitigate risk and enhance security by notifying authorities of outdoor gunfire incidents, saving critical minutes for first responders to arrive. SoundThinking Labs supports innovative uses of our technology to help protect wildlife and the environment.</span><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our gunshot detection solutions consist of highly-specialized, cloud-based software integrated with proprietary, internet-enabled sensors designed to detect outdoor gunfire. The speed and accuracy of our gunfire alerts enable law enforcement and security personnel to consistently and quickly respond to shooting events including those unreported through 911, which can increase the chances of apprehending the shooter, providing timely aid to victims, and identifying witnesses before they scatter, as well as aid in evidence collection and serve as an overall deterrent. When a potential gunfire incident is detected by our sensors, our system precisely locates where the incident occurred and applies machine classification combined with human review to analyze and validate the incident. An alert containing a location on a map and critical information about the incident is sent directly to subscribing law enforcement or security personnel through any internet-connected computer and to iPhone or Android mobile devices.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our software sends gunfire data along with the audio of the triggering sound to our Incident Review Center (&#8220;IRC&#8221;), where our trained incident review specialists are on duty 24 hours a day, seven days a week, 365 days a year to screen and confirm actual gunfire incidents. Our trained incident review specialists can supplement alerts with additional tactical information, such as the potential presence of multiple shooters or the use of high-capacity weapons. Gunshot incidents reviewed by our IRC result in alerts typically sent within approximately 45 seconds of the receipt of the gunfire incident.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">17</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We offer our solutions on a software-as-a-service subscription model to our customers. We generate annual subscription revenues from the deployment of ShotSpotter on a per-square-mile basis. Our security solutions, ShotSpotter for Campus, and ShotSpotter for Corporate are typically sold on a subscription basis, each with a customized deployment plan. Our ResourceRouter solution, an offering of CaseBuilder focused on gun violence, and CrimeTracer are also sold on a subscription basis generally customized based on the number of sworn officers in a particular city. We generate annual subscription revenues from the deployment of SafePointe on a per-lane basis, with a lane being the detection area between two sensors. As of June 30, 2025, we had ShotSpotter, ShotSpotter for Campus, and ShotSpotter for Corporate coverage areas under contract covered over 1,086 square miles, of which over 1,086 square miles had gone live. Coverage areas under contract for ShotSpotter included 179 cities and coverage areas under contract for ShotSpotter for Campus and ShotSpotter for Corporate included 22 campuses/sites across the United States, South Africa, Uruguay, Brazil and the Bahamas, and included some of the largest cities in the United States. As of June 30, 2025, we had 264 SafePointe lanes under contract. Most of our revenues are attributable to customers based in the United States.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">While we intend to continue devoting resources to increase sales of our solutions, we expect that revenues from ShotSpotter will continue to comprise a majority of our revenues for the foreseeable future. SoundThinking Labs projects are generally conducted in coordination with a sponsoring charitable organization and may or may not be revenue-producing. When they are revenue-producing, they will generally be sold on a cost-plus basis. As such, SoundThinking Labs projects will normally produce gross margins significantly lower than most of our other solutions. Additionally, in early 2021, we added new pricing programs for Tier 4 and 5 law enforcement agencies (those with fewer than 100 sworn officers) that allow them to contract for our gunshot detection solutions to cover a footprint of less than three square miles, using standardized coverage parameters, at a discounted annual subscription rate.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Since our founding over 28 years ago, SoundThinking has been and continues to be a purpose-led company. We are a mission-driven organization that focuses on improving public safety outcomes. We accomplish this by earning the trust of law enforcement and providing solutions to help them better engage and strengthen the police-community relationships in fulfilling their sworn obligation to serve and protect all. Our inspiration comes from our principal founder, Dr.&#8239;Bob Showen, who believes that the highest and best use of technology is to promote social good. We are committed to developing comprehensive, respectful, and engaged partnerships with law enforcement agencies, elected officials and communities focused on making a positive difference in the world.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We enter into subscription agreements that typically range from one to three years in duration. Substantially all of our sales are to governmental agencies and universities, which often undertake a prolonged contract evaluation process that affects the size or the timing of our sales contracts and may likewise increase our customer acquisition costs.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We rely on a limited number of suppliers and contract manufacturers to produce components of our solutions. We have no long-term contracts with these manufacturers and purchases from them are generally on a purchase order basis. Although we use a limited number of suppliers and contract manufacturers, we believe that we could find alternate suppliers or manufacturers if circumstances required us to do so, in part because a portion of the components required by our solutions are available off the shelf.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We generated revenues of $25.9 million and $27.0 million for the three months ended June 30, 2025 and 2024, respectively, representing a decrease of 4%. For the three months ended June 30, 2025 and 2024 revenues from ShotSpotter represented approximately 68% and 69% of total revenues, respectively. Our current largest customer, the City of New York accounted for 25% of our total revenues for the three months ended June 30, 2025. The City of New York and the City of Chicago each accounted for 25% and 10%, respectively, of our total revenues for the three months ended June 30, 2024. The City of Chicago did not renew our contract in November 2024. We submitted a proposal in response to a request for proposals from the City of Chicago for a new contract. At this time, we can provide no assurances that we will be successful in winning the new contract with Chicago.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We generated revenues of $54.2 million and $52.4 million for the six months ended June 30, 2025 and 2024, respectively, representing an increase of 4%. For the six months ended June 30, 2025 and 2024, revenues from ShotSpotter represented approximately 63%, and 69% of total revenues, respectively. Our current largest customer, the City of New York accounted for 31% of our total revenues for the six months ended June 30, 2025. The City of New York and the City of Chicago each accounted for 26% and 10%, respectively, of our total revenues for the six months ended June 30, 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">18</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For the three months ended June 30, 2025 and 2024, revenues generated within the United States (including Puerto Rico and the U.S. Virgin Islands) accounted for $25.1 million and $26.3 million, respectively, or 97% and 98% of total revenues, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For the six months ended June 30, 2025 and 2024, revenues generated within the United States (including Puerto Rico and the U.S. Virgin Islands) accounted for $52.7 million and $51.1 million, respectively, or 97% and 98% of total revenues, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We had a net loss of $3.1 million and $0.8 million for the three months ended June 30, 2025 and 2024, respectively. We had a net loss of $4.6 million and $3.7 million for the six months ended June 30, 2025 and 2024, respectively. Our accumulated deficit was $108.9 million and $104.3 million at June 30, 2025 and December 31, 2024, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We have focused on rapidly growing our business and believe that our future growth is dependent on many factors, including our ability to increase our customer base, expand the coverage of our solutions among our existing customers, expand our international presence, increase sales of our security solutions and retain our customers. Our future growth will primarily depend on the market acceptance for outdoor gunshot detection solutions, and expanding into new markets for our other security solutions. Challenges we face in this regard include our target customers not having access to adequate funding sources, the fact that contracting with government entities can be complex, expensive and time-consuming, the fact that our typical sales cycle is often very long and difficult to estimate accurately and the fact that negative publicity about our company can and has caused current and potential future customers to evaluate the sales of our solutions more than in the past. We expect international sales cycles to be even longer than our domestic sales cycles. To combat these challenges, we invest in research and development, increase awareness of our solutions, invest in new sales and marketing campaigns, often in different languages for international sales, and hire additional sales representatives to drive sales to continue to maintain our position as a market leader. In addition, we believe that entering into strategic partnerships with other service providers to cities and municipalities offers another potential avenue for expansion.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We will also focus on expanding our business by introducing new products and services to existing customers, such as ResourceRouter, CrimeTracer and as a result of our acquisition of SafePointe, an AI-driven weapon detection system, and acquiring intellectual property assets. We believe that developing and acquiring products for law enforcement in adjacent categories is a path for additional growth. We believe our large and growing installed base of police departments who trust SoundThinking&#8217;s products, support, and way of doing business provide revenue growth opportunities. The ability to cross-sell new products provides an opportunity to grow revenues per customer and lifetime value. We will also focus on expanding into new markets in conjunction with new regulations in California requiring weapons detection systems in hospitals and exploring other new markets such as casinos. Challenges we face in this area include ensuring our new products are reliable, integrated well with other SoundThinking solutions, and priced and serviced appropriately. In some cases, we will need to bring in new skill sets to properly develop, market, sell or service these new products depending on the categories they represent. Consistent with this strategy, we expanded our suite of solutions with the acquisitions of Technologic, Forensic Logic and SafePointe.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">With respect to international sales, we believe that we have the potential to expand our coverage within existing areas, and to pursue opportunities in Latin America and other regions of the world. By adding additional sales resources in strategic locations, we believe we will be better positioned to reach these markets. However, we recognize that we have limited international operational experience and currently operate in a limited number of regions outside of the United States. Operating successfully in international markets will require significant resources and management attention and will subject us to additional regulatory, economic and political risks. We may face additional challenges that may delay contract execution related to negotiating with governments in transition, the use of third-party integrations and consultants. Moreover, we anticipate that different political and regulatory considerations that vary across different jurisdictions could extend or make more difficult to predict the length of what is already a lengthy sales cycle.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Net New &#8220;Go-Live&#8221; Cities and Universities</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Net new &#8220;go-live&#8221; cities and universities represent the number of cities and universities covered by deployments of our gunshot detection solution, ShotSpotter, that were formally approved by customers during the period to be operational and ready to go live, both from initial and expanded customer deployments, net of cities and universities that ceased to be &#8220;live&#8221; during the period due to customer cancellations. New cities and universities include deployed coverage areas that may have been sold, or booked, in a prior period, but were formally approved during the period as noted above. We focus</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">19</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">on net new &#8220;go-live&#8221; cities and universities as a key business metric to measure our operational performance and market penetration. Our net new &#8220;go-live&#8221; cities and universities in the three and six months ended June 30, 2025 and 2024 were as follows:</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:48.79%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.242%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.422%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.5%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.422%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:2.2%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.422%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net new &#8220;go-live&#8221; cities and universities</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Components of Results of Operations</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Presentation of Financial Statements</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our unaudited condensed consolidated financial statements include the accounts of our wholly owned subsidiaries. All significant intercompany balances and transactions have been eliminated in consolidation.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Revenues</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We generate annual subscription revenues from the deployment of ShotSpotter on a per-square-mile basis and generate annual subscription revenues from the deployment of SafePointe on a per-lane basis, a lane being the detection area between two sensors. Our security solutions, ShotSpotter for Campus and ShotSpotter for Corporate are typically sold on a subscription basis, each with a customized deployment plan. Our ResourceRouter, CaseBuilder and CrimeTracer solutions are also sold on a subscription basis that is generally customized based on the number of sworn officers in a particular city.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We derive the majority of our revenues from subscription services. We recognize subscription fees ratably, on a straight-line basis, over the term of the subscription, which for new customers is typically initially one to three years in length. Customer contracts include one-time set-up fees for the set-up of our sensors in the customer&#8217;s coverage areas, training, and third-party integration licenses. If the set-up fees are deemed to be a material right, they are recognized ratably over three to five years depending on the contract term. Training and third-party integration license fees are recognized upon delivery.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We also generate revenues through sales to two customers through sales channel intermediaries that include enhanced services. One sales channel intermediary contract through Technologic includes (i) a single on-premises software license for our proprietary software technology and related maintenance and support services and (ii) professional software development services, such as for software development and testing for product feature enhancements, by executing supplementary work orders. The second sales channel intermediary contract includes an enterprise CaseBuilder solution with supplemental professional services to integrate CaseBuilder with the customer&#8217;s existing systems that will remain in place.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For ShotSpotter sales to cities, we generally invoice customers for 50% of the total contract value when the contract is fully executed and for the remaining 50% when the subscription service is operational and ready to go live &#8211; that is, when the customer has acknowledged the completion of all the deliverables in the signed customer acceptance form. For SafePointe, we generally invoice the first year&#8217;s subscription price when the contract is fully executed. For ShotSpotter for Campus, ShotSpotter for Corporate and CrimeTracer, we generally invoice customers 100% of the total contract value when the subscription service is operational, which is often soon after contract execution. All fees billed in advance of services being delivered are recorded as deferred revenue. The timing of when new miles go live can be uncertain and, as a result, can have a significant impact on the levels of revenues and deferred revenue from quarter to quarter.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For ShotSpotter, our pricing model is based on a per-square-mile basis. For SafePointe, our pricing model is based on a per-lane basis. For ShotSpotter for Campus, ShotSpotter for Corporate and CaseBuilder, our pricing model is on a customized-site basis. For ResourceRouter, CaseBuilder and CrimeTracer, pricing is currently customized, generally tied to the number of sworn police officers in a particular agency. We may also offer discounts or other incentives in conjunction with all ShotSpotter sales in an effort to introduce the product, accelerate sales or extend renewals for a longer contract term. As a result of our process for invoicing contracts and renewals upon execution, our cash flow from operations and accounts receivable can fluctuate due to timing of contract execution and timing of deployment.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We generally invoice subscription service renewals for 100% of the total contract value when the renewal contract is executed. Renewal fees are recognized ratably over the term of the renewal, which is typically one year. While most of</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">20</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">our customers elect to renew their agreements, in some cases, they may not be able to obtain the proper approvals or funding to complete the renewal prior to expiration. For these customers, we stop recognizing subscription revenues at the end of the current contract term, even though we may continue to provide services for a period of time until the renewal process is completed. Once the renewal is complete, we then recognize subscription revenues for the period between the expiration of the original term of the agreement and the completion of the renewal process in the month in which the renewal is executed. If a customer declines to renew its subscription prior to the end of the contract term, remaining setup fees, if any, are immediately recognized.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Through Forensic Logic, we generate revenues from subscriptions of CrimeTracer, cloud-based data services for advanced search and analysis tools. We also provide access to this technology platform to an intermediary to either be resold or combined with their own materials, software and/or services, to create an integrated solution that is provided to their end-user customers. We recognize this revenue net of margins paid to the intermediary.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We also generate revenues from CaseBuilder, a first-of-its-kind digital case management solution that automates the process by which key information is input, captured and used to identify associated gun crime cases leading to the identification of persons of interest. Subscriptions for CaseBuilder recognize revenue similar to our ShotSpotter and CrimeTracer products.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For SafePointe, we generate revenues from subscriptions of our AI-based weapons detection system based on the number of entryways, or lanes, being covered.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">It is likely that international deployments may have different payment and billing terms due to their local laws, restrictions or other customary terms and conditions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking Labs projects may or may not be revenue-producing. When they are revenue-producing, they are generally sold on a cost-plus basis.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We anticipate that, due to rising costs from inflation, our customers may experience increased expenditures resulting in budget shortfalls and changes in their business cycle, which may cause delays in their ability to approve proposals for contracts.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Costs</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Costs include the cost of revenues and impairment of property and equipment. Cost of revenues primarily includes depreciation expense associated with capitalized customer acoustic sensor networks, communication expenses, costs related to hosting our service applications, costs related to operating our IRC, providing remote and on-site customer support and maintenance and forensic services, providing customer training and onboarding services, certain personnel and related costs of operations, stock-based compensation and allocated overheads that include information technology, facility and equipment depreciation costs. Cost of revenues for our SafePointe solution are similar except that depreciation of the capitalized customer equipment is smaller due to the lower costs of SafePointe customer equipment.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Impairment of property and equipment is primarily attributable to our write-off of the remaining book value of sensor networks related to customers lost.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the near term, we expect our cost of revenues to increase in absolute dollars as our installed base increases, although certain of our costs of revenues are fixed and do not need to increase commensurate with increases in revenues. In addition, depreciation expense associated with deployed equipment is recognized over the first five years from the go live date. We also expect cost of revenues to increase in absolute dollars as we continue to invest in our customer success capabilities to drive growth and value for our customers. In addition, many of our standardized components used broadly in our sensors are manufactured in significant quantities in concentrated geographic regions, particularly in Greater China. As a result, the recently increased tariffs placed on components exported from China by the U.S. government will increase our costs of revenues.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For revenues generated through the sale of a proprietary software license and related maintenance and support services and professional software development services, cost of revenues generally includes employee compensation costs that are relatively fixed, third-party contractor costs, allocated facility costs and overhead and the costs of billable</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">21</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">expenses such as travel and lodging. The unpredictability of the timing of entering into significant professional services agreements may cause significant fluctuations in our costs which, in turn, may impact our quarterly financial results.</span></p><p style="text-indent:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The cost of revenues for CrimeTracer, ResourceRouter and CaseBuilder is generally related to employee compensation costs and data center hosting services, both of which are relatively fixed.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Operating Expenses</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Operating expenses consist of sales and marketing, research and development, and general and administrative expenses. Consultants, salaries, bonuses, stock-based compensation expense and other personnel costs are the most significant components of each of these expense categories. We include stock-based compensation expense incurred in connection with the grant of stock options and restricted stock units to the applicable operating expense category based on the equity award recipient&#8217;s functional area.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We are focused on executing our growth strategy. As a result, in the near term we expect our total operating expenses to increase in absolute dollars as we incur additional expenses due to growth and investments in AI to enhance our public safety solutions. Although our operating expenses will fluctuate, we expect that over time, they will generally decrease as a percentage of revenues.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Sales and Marketing</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Sales and marketing expenses primarily consist of personnel-related costs attributable to our sales and marketing personnel, commissions earned by our sales personnel, marketing expenses for trade shows and lead generation programs, consulting fees and travel and facility-related costs.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">While our sales and marketing expenses have recently decreased due to our contract with the New York City Police Department, we expect sales and marketing expense will increase in the near-term in absolute dollars as we continue to grow our organization and may fluctuate from quarter to quarter based on the timing of commission expense, marketing campaigns and tradeshows.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Research and Development</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Research and development expenses primarily consist of personnel-related costs attributable to our research and development personnel, consulting fees and allocated facilities and general operational overhead. We have devoted our product development efforts primarily to develop new lower-cost sensor hardware, develop new features, improve functionality of our solutions and adapt to new technologies or changes to existing technologies.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We are investing in engineering resources to support further development of ResourceRouter, CrimeTracer, CaseBuilder, PlateRanger and SafePointe. The focus of this effort will be in the areas of data science modeling, user experience, core application functionality and backend infrastructure improvements, including integration of ShotSpotter gunshot data to enhance forecasting of gun violence.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We are also investing in research and development resources in conjunction with our SoundThinking Labs projects and initiatives. The initial focus of these efforts is to develop innovative sensor applications as well as to test and expand the functionality of our outdoor sensors in challenging environmental conditions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the near term, we expect our research and development expenses to increase in absolute dollars and as a percentage of revenues as we increase our research and development headcount to further strengthen our software and invest in the development of our services.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We will continue to invest in research and development to leverage our large and growing database of acoustic events, which includes those from both gunfire and non-gunfire. We also intend to leverage third-party artificial intelligence and our own evolving cognitive and analytical applications to improve the efficiency of our solutions. Certain of these applications and outputs may expand the platform of services that we will be able to offer our customers.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">General and Administrative</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">General and administrative expenses primarily consist of personnel-related costs attributable to our executive, finance and administrative personnel, legal, litigation, strategic communications, accounting and other professional services fees, and other corporate expenses and allocated overhead.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the near term, we expect our general and administrative expenses to increase in both absolute dollars and as a</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">22</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">percentage of revenues as we grow our business and comply with the requirement to include an auditor attestation report on the effectiveness of our internal control over financial reporting for the year ending December 31, 2025 as a result of becoming an accelerated filer for 2026.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Change in Fair Value of Contingent Consideration</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Change in fair value of contingent consideration primarily consists of increases or decreases in our contingent consideration liabilities recorded for potential earnouts from our acquisition of SafePointe. The changes result from revenue actuals and revised revenue estimates utilized in the fair value methodology to estimate the contingent liability for the earnouts.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Other Income (Expense), Net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Other income (expense), net, consists primarily of interest income, interest expense and local and franchise tax expenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Income Taxes</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our income taxes are based on the amount of our income before tax and enacted federal, state and foreign tax rates, adjusted for allowable credits and deductions, as applicable. Historically, our income tax expense has been at the state level.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We continually monitor all positive and negative evidence regarding the realization of our deferred tax assets and may record assets when it becomes more likely than not, that they will be realized, which may impact the expense or benefit from income taxes.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In assessing the realizability</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">of deferred tax assets, management considers whether it is more likely than not that some portion or all of the deferred tax assets will not be realized. We regularly assess the likelihood that the deferred tax assets will be recovered from future taxable income. We consider projected future taxable income and ongoing tax planning strategies, then record a valuation allowance to reduce the carrying value of the net deferred taxes to an amount that is more likely than not able to be realized. Based upon our assessment of all available evidence, including the previous three years of income before tax after permanent items, estimates of future profitability, and our overall prospects of future business, we have determined that it is more likely than not that we will not be able to realize a portion of the deferred tax assets in the future. We will continue to assess the potential realization of deferred tax assets on an annual basis, or an interim basis if circumstances warrant. If our actual results and updated projections vary significantly from the projections used as a basis for this determination, we may</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">need to change</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">valuation</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">allowance against the gross</span><span style="color:#ff0000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">deferred tax assets.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">On July 4, 2025, the 2025 budget reconciliation bill, also known as the One Big Beautiful Bill Act of 2025 (the &#8220;Act&#8221;) was enacted into law. The Act includes changes to U.S. tax law which include modifications to deductions of research and experimental expenditures, limitations on deductions for interest expense, and accelerated fixed asset depreciation that may impact us starting in 2025. We are still in the process of evaluating the impact of the Act to our consolidated financial statements and an estimate of the impact cannot be made at this time.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">23</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Results of Operations</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Comparison of Three Months Ended June 30, 2025 and 2024</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table sets forth selected condensed consolidated statements of operations data for the three months ended June 30, 2025 and 2024 (in thousands):</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:35.267%;box-sizing:content-box;"/>
     <td style="width:1.48%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:6.621%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:9.581999999999999%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.48%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7.521000000000001%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7.861%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.48%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:6.621%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7.0809999999999995%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">As a % of</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">As a % of</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Change</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Revenues</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Revenues</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Revenues</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,889</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">100</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26,960</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">100</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(1,071</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-4</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Costs</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cost of revenues</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,058</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">47</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,781</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">40</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,277</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Impairment of property and equipment</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">36</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">106</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(70</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-66</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total costs</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,094</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">47</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,887</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">40</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,207</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Gross profit</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13,795</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">53</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,073</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">60</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(2,278</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-14</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating expenses:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,525</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,322</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(797</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-11</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,746</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,468</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">278</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,467</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,880</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">22</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">587</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Change in fair value of contingent consideration</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(554</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-2</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">554</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-100</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total operating expenses</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,738</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">65</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,116</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">60</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">622</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(2,943</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-12</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(43</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(2,900</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6744</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;&#160;Interest expense, net</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(20</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(61</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">41</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-67</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;Other expense, net</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(71</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(414</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-2</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">343</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-83</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;&#160;&#160;Provision for income taxes</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">86</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">234</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(148</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-63</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(3,120</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-12</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(752</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-3</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(2,368</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">315</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Revenues</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The decrease in revenues of $1.1 million was primarily due to a reduction in revenue of approximately $2.8 million resulting from the non-renewal of our contract with the City of Chicago in 2024 and $0.2 million other reduction, which decrease was partially offset by $1.9 million in new bookings and expansions with existing customers.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Costs of Revenues</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The increase in cost of revenues of $1.3 million was primarily due to an increase of $0.3 million in headcount expense, $0.2 million in maintenance costs and $0.4 million in reimbursable product cost and $0.4 million in other expenses related to our investments in enhancing our AI capabilities.  We incurred expenses related to licensing software for the New York City Police Department (&#8220;NYPD&#8221;) and expect to enter into a new sublicensing contract of approximately $1.0 million in the third quarter of 2025 and anticipate receiving catch-up revenue related to the additional costs of revenues incurred during the second quarter.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Sales and Marketing Expense</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Sales and marketing expense decreased by $0.8 million, primarily due to $0.8 million commission expense related to the contract with the NYPD in 2024, without a corresponding similar transaction in 2025.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Research and Development Expense</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Research and development expense increased by $0.3 million, primarily due to an increase of $0.1 million in headcount expense and $0.2 million in outside consulting expense related to our investments in enhancing our AI capabilities.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">General and Administrative Expense</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">General and administrative expense increased by $0.6 million, primarily due to an increase of $0.3 million in equity expense and $0.5 million in accounting fees related to our efforts to comply with the requirement to include an auditor</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">24</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">attestation report on the effectiveness of our internal control over financial reporting for the fiscal year ending December 31, 2025, offset by $0.2 million decrease of in headcount, legal and public relations expense.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Change in Fair Value of Contingent Consideration</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the second quarter of 2024, we recorded an adjustment to the fair value of our contingent consideration liabilities for potential earnouts of $0.6 million related to our SafePointe acquisition. We did not record a similar adjustment for the second quarter of 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Other Income (Expense), Net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The other expense, net decreased by $0.4 million, primarily due to $0.3 million in restructuring expense in the second quarter of 2024 and no such expenses in 2025.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Income Taxes</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our income taxes are based on the amount of our taxable income and enacted federal, state and foreign tax rates, adjusted for allowable credits, deductions and the valuations allowance against deferred tax assets, as applicable. For the three months ended June 30, 2025 and 2024, provision income taxes was $0.1 million and $0.2 million, respectively.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Comparison of Six Months Ended June 30, 2025 and 2024</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table sets forth selected condensed consolidated statements of operations data for the six months ended June 30, 2025 and 2024 (in thousands):</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:40.024%;box-sizing:content-box;"/>
     <td style="width:1.041%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:6.526%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.001%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7.425999999999999%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.041%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:6.526%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.001%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7.425999999999999%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.041%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:6.526%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.001%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:7.425999999999999%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">As a % of</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">As a % of</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Change</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Revenues</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Revenues</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Revenues</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">54,238</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">100</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">52,370</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">100</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,868</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Costs</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cost of revenues</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">23,776</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">44</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">21,052</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">40</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,724</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Impairment of property and equipment</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">73</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">358</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(285</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-80</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:20pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:3.707%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total costs</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">23,849</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">44</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">21,410</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">41</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,439</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Gross profit</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30,389</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">56</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30,960</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">59</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(571</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-2</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating expenses:</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13,784</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,434</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">28</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(650</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-5</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,811</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,028</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">783</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,941</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,710</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">231</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Change in fair value of contingent consideration</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(554</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-1</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">554</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-100</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total operating expenses</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">34,536</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">64</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">33,618</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">64</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">918</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(4,147</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-8</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(2,658</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-5</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(1,489</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">56</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Interest expense, net</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(32</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(183</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">151</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-83</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other expense, net</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(239</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(472</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-1</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">233</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-49</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Provision for income taxes</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">186</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">348</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(162</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">47</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(4,604</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-8</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(3,661</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">-7</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(943</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">%</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Revenues</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The increase in revenues of $1.9 million was primarily attributable to approximately $4.1 million in new bookings and expansions and $2.8 million of catch-up revenue from two three-year contract renewals with the New York City Police Department which were renewed in the first quarter of 2025, which increases were partially offset by a reduction in revenue of approximately $5.2 million resulting from the non-renewal of our contract with the City of Chicago in 2024.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Costs of Revenues</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The increase in cost of revenues of $2.7 million was due primarily to an increase of $1.0 million in Information Technology ("IT") costs related to our investments in enhancing our AI capabilities, $0.8 million in maintenance cost, $0.4 million in reimbursable product cost and $0.4 million in headcount and other expense. We incurred expenses related to licensing software for the NYPD and expect to enter into a new sublicensing contract approximately $1.0 million in the</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">25</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">third quarter of 2025 and anticipate receiving catch-up revenue related to the additional costs of revenues incurred during the second quarter.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Sales and Marketing Expense</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Sales and marketing expense decreased by $0.7 million, primarily due to $0.8 million commission expense related to the contract with the NYPD in 2024 without a corresponding similar transaction in 2025.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Research and Development Expense</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Research and development expense increased by $0.8 million, primarily due to an increase of $0.5 million in consulting expense associated with SafePointe and a $0.4 million increase in IT expense related to our investments in enhancing our AI capabilities.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">General and Administrative Expense</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">General and administrative expense increased by $0.2 million, primarily due to an increase of $0.5 million in equity expense and $0.5 million in accounting fees related to our efforts to comply with the requirement to include an auditor attestation report on the effectiveness of our internal control over financial reporting for the fiscal year ending December 31, 2025, offset by $0.8 million decrease in legal and IT expense.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Change in Fair Value of Contingent Consideration</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">There was no change in our contingent consideration liabilities recorded for potential earnouts from the $0.6 million adjustment in fair value of contingent consideration recognized in 2024 related to the SafePointe acquisition.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Other Income (Expense), Net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The other expense, net decreased by $0.4 million, primarily due to $0.3 million in restructuring expense in the second quarter of 2024 and no such expenses in 2025.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Income Taxes</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our income taxes are based on the amount of our taxable income and enacted federal, state and foreign tax rates, adjusted for allowable credits, deductions and the valuations allowance against deferred tax assets, as applicable. For the six months ended June 30, 2025 and 2024,  income taxes provision is $0.2 million and $0.3 million, respectively.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Liquidity and Capital Resources</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Sources of Funds</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our operations have been financed primarily through net proceeds from the sale of equity, debt financing arrangements and cash from operating activities. Our principal source of liquidity is cash and cash equivalents totaling $9.0 million and accounts receivable of $30.7 million as of June 30, 2025. On June 30, 2025, our available credit facility was approximately $21.0 million and we had $4.0 million outstanding on our line of credit, which was primarily used to fund our acquisition of SafePointe.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We believe our existing cash and cash equivalent balances, our available borrowings under our credit facility and cash flow from operations will be sufficient to meet our working capital and capital expenditure requirements for at least the next 12 months. We believe that despite our negative working capital, the costs to perform the short-term deferred revenue is relatively low compared to the balance of $38.5 million. However, should additional working capital be needed, we can utilize the amount available under our credit facility. We believe that we will meet longer term expected future working capital and capital expenditure requirements through a combination of cash flows from operating activities, available cash balances and our available credit facility. Our future capital requirements may vary materially from those currently planned and will depend on many factors, including our rate of revenue growth, the timing and extent of spending on sales and marketing, the expansion of sales and marketing activities, the timing of new product introductions, market acceptance of our products, further investments in our public safety solutions and overall economic conditions. We may also seek additional capital to fund our operations, including through the sale of equity or debt financings. To the extent that we raise additional capital through the future sale of equity, the ownership interest of our stockholders will be diluted, and the terms of these securities may include liquidation or other preferences that adversely affect the rights of our existing</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">26</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">common stockholders. The incurrence of debt financing would result in debt service obligations and the instruments governing such debt could provide for operating and financing covenants that would restrict our operations. Additionally, there is no guarantee that debt or equity financing will be available to us on terms that are favorable to us, or at all.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Use of Funds</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our historical uses of cash have primarily consisted of cash used for operating activities, such as expansion of our sales and marketing operations, research and development activities and other working capital needs, and cash used in investing activities, such as property and equipment expenditures to install infrastructure in customer cities in order to deliver our solutions and acquisitions. Our expected material cash requirements are similar to our historical uses of cash. In addition, we expect to need cash to meet our obligations for any contingent earnouts, repurchases under our stock repurchase program and repayment of debt under our credit facility, each as described below.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In August 2023, we completed the acquisition of SafePointe for purchase consideration of $25.6 million, consisting of $11.4 million in cash, subject to working capital adjustments, and the issuance of 549,579 shares of our common stock that was valued at $11.2 million at the time of acquisition. We used $7.0 million of our credit facility to complete this acquisition. The purchase consideration also included contingent consideration valued at $3.0 million at the time of acquisition, which is related to a contingent earnout payable of up to $11.5 million based on SafePointe&#8217;s revenues generated through 2025. Any earned amounts will be payable within approximately 120 days after the end of the target year.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the first half of 2024, we determined the contingent consideration related to the acquisition of SafePointe was not probable of being earned based on estimated SafePointe revenue resulting in the fair value of contingent consideration liabilities as of June 30, 2025 and 2024 being nil.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Stock Repurchase Program</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In November 2022, our board of directors approved a stock repurchase program (the &#8220;2022 Repurchase Program&#8221;) for up to $25.0 million of our common stock. The shares may be repurchased from time to time in open market transactions, in privately negotiated transactions or by other methods in accordance with federal securities laws. The actual timing, number and value of shares repurchased under the program will be determined by management in its discretion and will depend on a number of factors, including the market price of our common stock, general market and economic conditions and applicable legal requirements. The stock repurchase program does not obligate us to purchase any particular amount of common stock and may be suspended or discontinued at any time.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025, we repurchased 65,063 shares of our common stock at an average price of $14.92 per share for approximately $1.0 million, under the 2022 Repurchase Program. The repurchases were made in open market transactions using cash on hand, and all of the shares repurchased were retired. As of June 30, 2025, $12.5 million remains available under the 2022 Repurchase Program.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Credit Facility</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We have a revolving credit facility for available borrowings of up to $25.0 million under our Credit Agreement with Umpqua Bank (the &#8220;Umpqua Credit Agreement&#8221;).  The credit facility matures on October 15, 2025. The revolving credit facility is for general working capital purposes. On June 30, 2025, we had $4.0 million outstanding on our line of credit, with an available borrowing capacity of $21.0 million.The Umpqua Credit Agreement subjects us to certain restrictive and financial covenants, see the risk entitled &#8220;The incurrence of debt may impact our financial position and subject us to additional financial and operating restrictions&#8221; in Part II, Item 1A, Risk Factors, included in this Quarterly Report on Form 10-Q. We are in compliance with all the covenants under the Umpqua Credit Agreement as of June 30, 2025.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">27</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Cash Flows</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Comparison of Six Months Ended June 30, 2025 and 2024</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table presents a summary of our cash flows for the six months ended June 30, 2025 and 2024 (in thousands):</span></p>
   <table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:63.127%;box-sizing:content-box;"/>
     <td style="width:2.579%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:13.717%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:2.859%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:13.717%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="6" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net cash provided by (used in):</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:2.773%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating activities</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(1,424</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9,391</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:2.773%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Investing activities</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(2,290</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(3,748</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0in;text-indent:15pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="margin-left:2.773%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Financing activities</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(547</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(1,550</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net change in cash and cash equivalents</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(4,261</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,093</span></p></td>
     <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Operating Activities</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our net loss and cash flows provided by (used in) operating activities are significantly influenced by our increase in headcount to support our growth, increase in legal expenses, outside services fees, sales and marketing expenses and our ability to bill and collect in a timely manner.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Net cash provided by operating activities decreased by $10.8 million during the six months ended June 30, 2025 compared to six months ended June 30, 2024 resulting from net cash used by operating activities of $1.4 million compared to net cash provided by operating activities of $9.4 million during the same period of 2024. This was primarily due to a decrease of $8.1 million in deferred revenue caused by a reduction in new billings of $7.6 million and a decrease of $2.2 million in personnel-related accrual.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Investing Activities</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our investing activities consist of business acquisition expenditures, capital expenditures to install our solutions in customer coverage areas and purchases of property and equipment.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Investing activities used cash of $2.3 million in the six months ended June 30, 2025. This was primarily driven by investments of $2.3 million in property and equipment installed for our solutions in customer coverage areas. Investing activities used cash of $3.8 million in the six months ended June 30, 2024. This was primarily driven by investments in property and equipment installed for our solutions in customer coverage areas.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Financing Activities</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Financing activities includes net proceeds from the exercise of stock options, offset by payments for repurchases of our common stock.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Financing activities used cash of $0.6 million in the six months ended June 30, 2025 which was payment of $1.0 million for repurchases of our common stock, offset by proceeds of $0.4 million from our employee stock purchase plan. Financing activities used cash of $1.6 million in the six months ended June 30, 2024, and reflect common stock repurchases of approximately $2.0 million, offset by proceeds of $0.4 million from our employee stock purchase plan.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Critical Accounting Estimates</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our condensed consolidated financial statements are prepared in accordance with generally accepted accounting principles in the United States of America. The preparation of our condensed consolidated financial statements requires us to make estimates, assumptions and judgments that affect the reported amounts of revenues, assets, liabilities, costs and expenses. We base our estimates and assumptions on historical experience and other factors that we believe to be reasonable under the circumstances and evaluate our estimates and assumptions on an ongoing basis. Our actual results may differ from these estimates.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">28</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our critical accounting estimates are described under the heading &#8220;Management&#8217;s Discussion and Analysis of Financial Condition and Results of Operations&#8212;Critical Accounting Estimates&#8221; in our Annual Report on Form 10-K for the year ended December 31, 2024 (our &#8220;</span><a href="https://www.sec.gov/ix?doc=/Archives/edgar/data/0001351636/000095017025047539/ssti-20241231.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2024 Annual Report on Form 10-K</span></a><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#8221;) and the notes to the audited consolidated financial statements appearing in our 2024 Annual Report on Form 10-K, filed with the SEC on March 31, 2025. As of June 30, 2025, there have been no material changes to our critical accounting policies and estimates from those disclosed in our 2024 Annual Report on Form 10-K.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Recently Issued Accounting Pronouncements</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">See Note 2, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Summary of Significant Accounting Policies</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, in the notes to our unaudited condensed, consolidated financial statements included in this Quarterly Report on Form 10-Q.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">29</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_3"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Item 3. Qualitative and Quanti</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">tati</span><span id="item_3_qualitative_quantitative_disclosu"></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">ve Disclosures About Market Risk</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Market risk represents the risk of loss that may impact our financial position due to adverse changes in financial market prices and rates. Our market risk exposure is primarily the result of fluctuations in interest rates and foreign exchange rates and inflation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">There were no material changes in our market risk during the six months ended June 30, 2025, compared to the market risk disclosed in the Qualitative and Quantitative Disclosures About Market Risk section of our 2024 Annual Report on Form 10-K.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_4_controls_procedures"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Item 4. Controls</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and Procedures</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Evaluation of Disclosure Controls and Procedures</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our management has evaluated, under the supervision and with the participation of our Chief Executive Officer and Chief Financial Officer, the effectiveness of our disclosure controls and procedures (as defined in Rules 13-a-15(e) and 15d-15(e) under the Exchange Act) as of the end of the period covered by this report. Based on this evaluation, our Chief Executive Officer and Chief Financial Officer have concluded that as of June 30, 2025, our disclosure controls and procedures were not effective to provide reasonable assurance that the information we are required to file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the SEC&#8217;s rules and forms, and that such information is accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial Officer, to allow timely decisions regarding required disclosure as a result of a material weakness in our internal control over financial reporting discussed below, which remained unremediated as of June 30, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Notwithstanding the identified material weakness described below, management does not believe that the material weakness had an adverse effect on our reported operating results or financial condition and management has determined that the consolidated financial statements and other information included in this report and other periodic filings present fairly in all material respects our financial condition, results of operations, and cash flows at and for the periods presented in accordance with U.S. GAAP, and does not modify or change financial guidance provided by the Company.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Changes in Internal Control over Financial Reporting</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">While management continues to make progress on its remediation efforts as discussed below, there were no changes in our internal control over financial reporting (as defined in Exchange Act Rule 13a-15(f)) during the quarter ended June 30, 2025 that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Inherent Limitations on Effectiveness of Controls</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our management, including our principal executive officer and principal financial officer, does not expect that our disclosure controls and procedures or our internal control over financial reporting will prevent or detect all errors and all fraud. A control system, no matter how well conceived and operated, can provide only reasonable, not absolute, assurance that the objectives of the control system are met. Because of the inherent limitations in all control systems, no evaluation of controls can provide absolute assurance that all control issues and instances of fraud, if any, within the Company have been detected. The design of any system of controls also is based in part upon certain assumptions about the likelihood of future events, and there can be no assurance that any design will succeed in achieving its stated goals under all potential future conditions. Over time, controls may become inadequate because of changes in conditions, or the degree of compliance with the policies or procedures may deteriorate. Because of the inherent limitations in a cost-effective control system, misstatements due to error or fraud may occur and not be detected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Material Weakness in Internal Control Over Financial Reporting</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A material weakness is a control deficiency, or combination of deficiencies, in internal control over financial reporting such that there is a reasonable possibility that a material misstatement of our annual or interim financial statements will not be prevented or detected on a timely basis. In connection with the assessment of our internal control over financial reporting described above, management identified the following deficiencies that individually, or in the aggregate, constituted a material weakness in our internal control over financial reporting as of June 30, 2025.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Management identified a material weakness in the design of the controls related to the verification of the completeness and accuracy of data used in schedules supporting the consolidated financial statements but is confident that</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">30</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the weakness does not modify or change financial guidance provided by the company.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Remediation Plan</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We have initiated certain measures to remediate this material weakness, including fully documenting our processes, training our personnel and monitoring our controls, related to the verification of the completeness and accuracy of data used in schedules supporting the consolidated financial statements. We may need to implement additional appropriate measures in the future. However, there can be no assurance that we will be able to fully remediate this material weakness or that our remedial actions will prevent this weakness from re-occurring in the future.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">31</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:18pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">PART II &#8211; OTHER INFORMATION</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="legal_proceedings"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Item 1. Legal Proceedings</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The information contained under the heading &#8220;Commitments and Contingencies&#8221; in Note 13 to our unaudited condensed consolidated financial statements included in this Quarterly Report on Form 10-Q is incorporated by reference into this Item.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;" id="item_1a_risk_factors"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Item 1A. R</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">i</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">sk Factors</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Investing in our common stock involves a high degree of risk. You should consider carefully the risks and uncertainties described below, together with all of the other information in this report, including our consolidated financial statements and related notes, before deciding whether to purchase shares of our common stock. If any of the following risks is realized, our business, operating results, financial condition and prospects could be materially and adversely affected. In that event, the price of our common stock could decline, and you could lose part or all of your investment. Moreover, the risks described below are not the only ones that we face. Additional risks not presently known to us or that we currently deem immaterial may also affect our business, operating results, prospects or financial condition. You should carefully consider these risk factors, together with all of the other information included in this Quarterly Report on Form 10-Q as well as our other publicly available filings with the SEC.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Summary of Risk Factors</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Investing in our common stock involves risks, including those discussed in this section. These risks include, among others:</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If our business does not grow as we expect, or if we fail to manage our growth effectively, our operating results and business prospects would suffer.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any interruptions or delays in service from our third-party providers could impair our ability to make our solutions available to our customers, resulting in customer dissatisfaction, damage to our reputation, loss of customers, limited growth and reduction in revenue.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If we are unable to sell our solutions into new markets, our revenues may not grow.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our success depends on maintaining and increasing our sales, which depends on factors we cannot control, including the availability of funding to our customers.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our quarterly results of operations may fluctuate significantly due to a wide range of factors, which makes our future results difficult to predict.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Because we generally recognize our subscription revenues ratably over the term of our contract with a customer, fluctuations in sales will not be fully reflected in our operating results until future periods.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We have not been profitable in the past and may not achieve or maintain profitability in the future.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We may require additional capital to fund our business and support our growth, and our inability to generate and obtain such capital on acceptable terms, or at all, could harm our business, operating results, financial condition and prospects.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Contracting with government entities can be complex, expensive, and time-consuming. </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If we are unable to further penetrate the public safety market, our revenues may not grow.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our sales cycle can be lengthy, time-consuming and costly, and our inability to successfully complete sales could harm our business.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Changes in the availability of federal funding to support local law enforcement efforts could impact our business.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The failure of our solutions to meet our customers&#8217; expectations could harm our reputation, which may have a material adverse effect on our business, operating results and financial condition.</span></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">32</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Real or perceived false positive gunshot alerts or failure or perceived failure to generate alerts for actual gunfire or missed weapon detection could adversely affect our customers and their operations, damage our brand and reputation and adversely affect our growth prospects and results of operations.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The nature of our business may result in undesirable press coverage or other negative publicity, which could adversely affect our growth prospects and results of operations.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Economic uncertainties or downturns, or political changes, could limit the availability of funds available to our existing and potential customers, which could materially and adversely affect our business.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The nature of our business exposes us to inherent liability risks.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As a result of our use of outdoor acoustic sensors and cameras, we are subject to governmental regulation and other legal obligations, particularly related to data privacy, data protection and information security, and our actual or perceived failure to comply with such obligations could harm our business. Compliance with such laws could impair our efforts to maintain and expand our customer base, and thereby decrease our revenues. </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Failure to protect our intellectual property rights could adversely affect our business.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Systems and Organizations Controls 2 (&#8220;SOC2&#8221;), Criminal Justice Information Services (&#8220;CJIS&#8221;) and Health Insurance Portability and Accountability Act (&#8220;HIPAA&#8221;) requirements could potentially cause obligations that we are not able to completely perform which could adversely affect our reputation and sales, as well as the availability of our solutions in certain markets. </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Cyber-attacks, malicious internet-based activity, online and offline fraud, and other similar activities threaten the confidentiality, integrity, and availability of our sensitive information and information technology systems, and those of the third parties upon which we rely. These attacks could materially disrupt our systems and operations, supply chain, and ability to produce, sell and distribute our products and services.</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Ongoing social unrest may have a material adverse effect on our business, the future magnitude or duration of which we cannot predict with accuracy.</span></div></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:8pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Risks Related to Our Growth</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">If our business does not grow as we expect, or if we fail to manage our growth effectively, our operating results and business prospects would suffer.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our ability to successfully grow our business depends on a number of factors including our ability to:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">accelerate our acquisition of new customers;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">further sell expansions of coverage areas to our existing customers;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">expand our international footprint;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">expand into new vertical markets, such as precision policing, and security solutions, healthcare and casino gaming;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">expand into new markets in conjunction with new regulations in California requiring weapons detection systems in hospitals;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">increase awareness of the benefits that our solutions offer;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">maintain our competitive and technology leadership position; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">manage our business successfully through macroeconomic pressures, such as the imposition of tariffs, inflation, rising interest rates, and past and potential future disruptions in access to bank deposits and lending commitments due to bank failures, and any resulting impact on economic conditions, including conditions impacting the availability of funding for our public safety solutions.</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As usage of our solutions grows, we will need to continue to make investments to develop and implement new or updated solutions, technologies, security features and cloud-based infrastructure operations. In addition, we will need to appropriately scale our internal business systems and our services organization, including the suppliers of our detection equipment and customer support services, to serve our growing customer base. Any failure of, or delay in, these efforts</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">33</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">could impair the performance of our solutions and reduce customer satisfaction.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Further, our growth could increase quickly and place a strain on our managerial, operational, financial and other resources, and our future operating results depend to a large extent on our ability to successfully manage our anticipated expansion and growth. To manage our growth successfully, we will need to continue to invest in sales and marketing, research and development, and general and administrative functions and other areas. We are likely to recognize the costs associated with these investments earlier than receiving some of the anticipated benefits, and the return on these investments may be lower, or may develop more slowly, than we expect, which could adversely affect our operating results. For example, we have recently made significant investments in AI to enhance our public safety solutions but we will likely not be able to receive the anticipated benefits from this investment for a period of time.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If we are unable to manage our growth effectively, we may not be able to take advantage of market opportunities or develop new solutions or upgrades to our existing solutions, satisfy customer requirements, maintain the quality and security of our solutions or execute on our business plan, any of which could have a material adverse effect on our business, operating results and financial condition.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our quarterly results of operations may fluctuate significantly due to a wide range of factors, which makes our future results difficult to predict.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our revenues and results of operations could vary significantly from quarter to quarter as a result of various factors, many of which are outside of our control, including:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the expansion or contraction of our customer base; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the renewal or non-renewal of subscription agreements with, and expansion of coverage areas by, existing customers; or cross-selling of other products or services to existing customers; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the size, timing, terms and deployment schedules of our sales to both existing and new customers; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the introduction of products or services that may compete with us for the limited funds available to our customers, and changes in the cost of such products or services; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">changes in our customers&#8217; and potential customers&#8217; budgets; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">our ability to control costs, including our operating expenses; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">our ability to hire, train and maintain our direct sales force; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the timing of satisfying revenue recognition criteria in connection with initial deployment and renewals; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">fluctuations in our effective tax rate;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the concentration of our revenue in a small number of large contracts with the potential for fluctuations and delays; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">general economic factors, such as the imposition of tariffs, inflation, rising interest rates, past and potential future disruptions in access to bank deposits and lending commitments due to bank failures, and political conditions, both domestically and internationally.</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For example, our revenues with respect to certain customers have varied significantly during the past year. The City of Chicago was our second largest customer by revenue in 2023 and 2024.  However, Chicago did not renew our contract in November 2024.  As a result, the significance of our largest customer by revenue, the City of New York, has increased from representing 26% of our revenue for the six months ended June 30, 2024 to 31% of our revenue for the six months ended June 30, 2025. Any inability to renew or delays in renewal of our contract with the City of New York or any of the other factors above or other factors discussed elsewhere in this report will  result in fluctuations in our revenues and operating results, meaning that quarter-to-quarter comparisons of our revenues, results of operations and cash flows may not necessarily be indicative of our future performance.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Because of the fluctuations described above, our ability to forecast revenues is limited and we may not be able to accurately predict our future revenues or results of operations. In addition, we base our current and future expense levels on our operating plans and sales forecasts, and our operating expenses are expected to increase in the short term. Accordingly, we may not be able to reduce our costs sufficiently to compensate for an unexpected shortfall in revenues, and even a small shortfall in revenues could disproportionately and adversely affect our financial results for that quarter.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">34</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The variability and unpredictability of these and other factors could result in our failing to meet or exceed financial expectations for a given period.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Because we generally recognize our subscription revenues ratably over the term of our contract with a customer, fluctuations in sales will not be fully reflected in our operating results until future periods.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our revenues are primarily generated from subscriptions to our solutions. With the exception of a small number of legacy customers, our customers do not have the right to take possession of our equipment or software platform. Revenues from subscriptions to our software platform are recognized ratably over the subscription period beginning on the date that the subscription is made available to the customer, which we refer to as the &#8220;go-live&#8221; date. Our agreements with our customers typically range from one to three years. As a result, much of the revenues that we report in each quarter are attributable to agreements entered into during previous quarters. Consequently, a decline in sales, customer renewals or market acceptance of our solutions in any one quarter would not necessarily be fully reflected in the revenues in that quarter and would negatively affect our revenues and profitability in future quarters. This ratable revenue recognition also makes it difficult for us to rapidly increase our revenues through additional sales in any period, as revenues from new customers generally are recognized over the applicable agreement term. Our subscription-based approach may result in uneven recognition of revenues.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We recognize subscription revenues over the term of a subscription agreement. Once we enter into a ShotSpotter contract with a customer, there is a delay until we begin recognizing revenues while we survey the coverage areas, obtain any required consents for installation, and install our sensors, which together can take up to several months or more.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We begin recognizing revenues from a ShotSpotter sale only when all of these steps are complete and the solution is live.  While most of our customers elect to renew their subscription agreements following the expiration of a term, in some cases, they may not be able to obtain the proper approvals or funding to complete the renewal prior to such expiration. For these customers, we stop recognizing subscription revenues at the end of the current term, even though we may continue to provide services for a period of time while the renewal process is completed. Once the renewal is complete, we then recognize subscription revenues for the period between the expiration of the term of the agreement and the completion of the renewal process.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The variation in the timeline for deploying our solutions and completing renewals may result in fluctuations in our revenues, which could cause our results to differ from projections. Additionally, while we generally invoice for 50% of the contract cost upon a customer&#8217;s go-live date, our cash flows may be volatile and will not match our revenue recognition.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We have not been profitable in the past and may not achieve or maintain profitability in the future.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We had a net loss of $4.6 million for the six months ended June 30, 2025 and a net loss of $9.2 million for the year ended December 31, 2024 and as of  June 30, 2025, we had an accumulated deficit of $108.9 million.  We are not certain whether we will be able to maintain enough revenues from sales of our solutions to sustain or increase our growth or maintain profitability in the future. We also expect our costs to increase in future periods, which could negatively affect our future operating results if our revenues do not increase. In particular, we have previously and expect to continue to expend substantial financial and other resources on:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:0;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">higher costs to procure the sensors required for our solutions due to inflationary pressures or tariffs; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">sales and marketing, including a significant expansion of our sales organization, both domestically and internationally; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">research and development related to our solutions, including investments in our engineering and technical teams and investments in AI; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">acquisition of complementary technologies or businesses, such as our acquisition of LEEDS, LLC, now known as Technologic, in November 2020, our acquisition of Forensic Logic in January 2022 and our acquisition of SafePointe in August 2023; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">continued international expansion of our business; and </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">general and administrative expenses.</span></div></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">35</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">These investments may not result in increased revenues or growth in our business. If we are unable to increase our revenues at a rate sufficient to offset the expected increase in our costs, our business, operating results and financial position may be harmed, and we may not be able to maintain profitability over the long term. Rising inflation rates have resulted in decreased demand for our products and services and have increased our operating costs. Additionally, we may encounter unforeseen operating expenses, difficulties, complications, delays and other unknown factors that may result in losses in future periods. If our revenue growth does not meet our expectations in future periods, our financial performance may be harmed, and we may not maintain profitability in the future.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We may require additional capital to fund our business and support our growth, and our inability to generate and obtain such capital on acceptable terms, or at all, could harm our business, operating results, financial condition and prospects.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We intend to continue to make substantial investments to fund our business and support our growth. In addition, we may require additional funds to respond to business challenges, including the need to develop new features or enhance our solutions, improve our operating infrastructure or acquire or develop complementary businesses and technologies. As a result, in addition to the revenues we generate from our business and our existing cash balances, we may need to engage in additional equity or debt financings to provide the funds required for these and other business endeavors. If we raise additional funds through future issuances of equity or convertible debt securities, our existing stockholders could suffer significant dilution, and any new equity securities we issue could have rights, preferences and privileges superior to those of holders of our common stock. Any debt financing that we may secure in the future could involve restrictive covenants relating to our capital raising activities and other financial and operational matters, which may make it more difficult for us to obtain additional capital and to pursue business opportunities, including potential acquisitions. We may not be able to obtain such additional financing on terms favorable to us, if at all. If we are unable to obtain adequate financing or financing on terms satisfactory to us when we require it, our ability to continue to support our business growth and to respond to business challenges could be significantly impaired, and our business may be adversely affected. In addition, our inability to generate or obtain the financial resources needed may require us to delay, scale back, or eliminate some or all of our operations, which may have a material adverse effect on our business, operating results, financial condition and prospects.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Risks Related to Our Public Safety Business</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our success depends on maintaining and increasing our sales, which depends in part on factors we cannot control, including the availability of funding to our customers.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">To date, substantially all of our revenues have been derived from contracts with local governments and their agencies, in particular the police departments of major cities in the United States. To a lesser extent, we also generate revenues from federal agencies, foreign governments and higher education institutions. We believe that the success and growth of our business will continue to depend on our ability to add new police departments and other government agencies, domestically and internationally, as customers of our public safety solutions and new universities, corporate campuses, hospitals, casinos and key infrastructure and transportation centers as customers of our security solutions. Many of our target customers have restricted budgets, such that we are forced to compete with programs or solutions that offer an alternative use of the same funds. A number of factors outside of our control could cause current and/or potential customers to delay or refrain from purchasing our solutions, prevent expansion of, or reduce coverage areas and/or terminate use of our solutions, including:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:0;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">decreases or changes in available funding, including as a result of policies implemented by Trump administration&#8217;s Department of Government Efficiency within the Office of Management and Budget (&#8220;DOGE&#8221;), tax revenues, budgetary allocations, government grants and other government funding programs;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">potential delays or changes in appropriations or other funding authorization processes;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">changes in fiscal or contracting policies;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">macro- and/or local economic changes, such as the imposition of tariffs, inflation, rising interest rates, and past and potential future disruptions in access to bank deposits and lending commitments due to bank failures, that may affect customer funding;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">changes in elected or appointed officials;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">changes in public perception of the accuracy of our solutions and the appropriate use of our solutions by law enforcement, including as a result of negative publicity; and</span></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">36</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">changes in laws or public sentiment regarding privacy or surveillance.</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The occurrence of any of the foregoing would impede or delay our ability to maintain or increase the amount of revenues derived from these customers, which could have a material adverse effect on our business, operating results and financial condition.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Contracting with government entities can be complex, expensive, and time-consuming.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The procurement process for government entities is in many ways more challenging than contracting in the private sector. We must comply with laws and regulations relating to the formation, administration, performance and pricing of contracts with government entities, including U.S. federal, state and local governmental bodies. These laws and regulations may impose added costs on our business or prolong or complicate our sales efforts, and failure to comply with these laws and regulations or other applicable requirements could lead to claims for damages from our customers, penalties, termination of contracts and other adverse consequences. Any such damages, penalties, disruptions or limitations in our ability to do business with government entities could have a material adverse effect on our business, operating results and financial condition.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Government entities often require highly specialized contract terms that may differ from our standard arrangements. For example, if the federal government provides grants to certain state and local governments for our solutions, and such governments do not continue to receive these grants, then these customers have the ability to terminate their contracts with us without penalty. Government entities often impose compliance requirements that are complicated, require preferential pricing or &#8220;most favored nation&#8221; terms and conditions, or are otherwise time-consuming and expensive to satisfy. Compliance with these special standards or satisfaction of such requirements could complicate our efforts to obtain business or increase the cost of doing so. Due to the nature of our business as a software-as-a-service provider, we are occasionally unable to meet certain requirements related to the utilization of small businesses in providing our services. Even if we do meet these special standards or requirements, the increased costs associated with providing our solutions to government customers could harm our margins. Additionally, even once we have secured a government contract, the renewal process can be lengthy and as time-consuming as the initial sale, and we may be providing our service for months past the contract expiration date without certainty if the renewal agreement will be signed or not.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Changes in the underlying regulatory conditions, political landscape or required procurement procedures that affect these types of customers could be introduced prior to the completion of our sales cycle, making it more difficult or costly to finalize a contract with a new customer or expand or renew an existing customer relationship. For example, customers may require a competitive bidding process with extended response deadlines, review or appeal periods, or customer attention may be diverted to other government matters, postponing the consideration of the purchase of our products. Such delays could harm our ability to provide our solutions efficiently and to grow or maintain our customer base.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">If we are unable to further penetrate the public safety market, our revenues may not grow.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our ability to increase revenues will depend in large part on our ability to sell our current and future public safety solutions. For example, our ability to have our ShotSpotter customers renew their annual subscriptions and expand their mileage coverage or purchase and implement our other products, such as CaseBuilder and ResourceRouter, drives our ability to increase our revenues. Most of our ShotSpotter customers begin using our solution in a limited coverage area. Our experience has been, and we expect will continue to be, that after the initial implementation of our solutions, our new customers typically renew their annual subscriptions, and many also choose to expand their coverage area. However, some customers may choose to not renew or reduce their coverage, including as a negative reaction to price increases. If existing customers do not choose to renew or expand their coverage areas, or choose to reduce their coverage, our revenues will not grow as we anticipate or may even decline.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our ability to further penetrate the market for our public safety solutions depends on several factors, including: maintaining a high level of customer satisfaction and a strong reputation among law enforcement; increasing the awareness of our SoundThinking solutions and their benefits; the effectiveness of our marketing programs; the availability of funding to our customers; geopolitical developments and other macroeconomic pressures; our ability to expand our solutions; and the costs of our solutions. Some potential public safety customers may be reluctant or unwilling to use our solution for a number of reasons, including concerns about additional costs or increased prices, lack of concern regarding the extent of gun violence in their community, uncertainty regarding the reliability and security of cloud-based offerings or lack of awareness of the benefits of our public safety solutions. If we are unsuccessful in expanding the coverage of SoundThinking solutions by existing public safety customers or adding new customers, our revenues and growth prospects would suffer.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">37</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our sales cycle can be lengthy, time-consuming and costly, and our inability to successfully complete sales could harm our business.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our sales process involves educating prospective customers and existing customers about the use, technical capabilities and benefits of our solutions. Prospective customers, especially government agencies, often undertake a prolonged evaluation process that may last up to nine months or more and that typically involves comparing the benefits of our solutions to alternative uses of funds. We may spend substantial time, effort and money on our sales and marketing efforts without any assurance that our efforts will produce any sales.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In addition, in 2011 the Federal Bureau of Investigation&#8217;s (the &#8220;FBI&#8221;) Criminal Justice Information Services Division (the &#8220;CJIS&#8221;) issued the CJIS Security Policy, a set of standards for organizations that access criminal justice information (&#8220;CJI&#8221;). CJIS developed this policy to better protect the data it delivers to federal, state and local law enforcement agencies, from services like the National Crime Information Center, the Integrated Automated Fingerprint Identification System and the National Incident Based Reporting System. The policy is also designed to protect CJI that comes from sources other than the FBI. As part of the process of implementing CaseBuilder for a customer, we may have to become an approved CJIS compliant vendor. In some states CJIS compliance is required, a separate process will have to be completed in locations where CaseBuilder will be implemented.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We are continually improving our security, compliance, and processes. Our general processes are based on the NIST-800-53 standard with some aspects also being controlled by CJIS. In the fourth quarter of 2024, an audit of our processes under a SOC2 Type 2 audit was completed. These initiatives require fiscal and time investments. Failure to obtain a SOC2 Type 2 audit report or to be compliant with the CJIS standard or HIPAA could adversely affect our reputation and sales, as well as the availability of our solutions in certain markets.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Additionally, events affecting our customers&#8217; budgets or missions may occur during the sales cycle that could negatively impact the size or timing of a purchase after we have invested substantial time, effort and resources into a potential sale, contributing to more unpredictability in the growth of our business. If we are unable to succeed in closing sales with new and existing customers, our business, operating results and financial condition will be harmed. For example, we are working on a delayed contract renewal with Puerto Rico which, contrary to our prior dealings with them, has a new requirement of issuing a formal request for proposal process in order to renew an agreement. During periods of economic uncertainty resulting from the past and potential future disruptions in access to bank capital and lending commitments due to bank failures, geopolitical developments such as the conflicts between Ukraine and Russia and in the Middle East, and other macroeconomic pressures in the United States and the global economy, such as the imposition of tariffs, rising inflation and interest rates, supply chain constraints, labor market shortages, energy prices and recession fears, and any associated impact on economic conditions, this risk is more pronounced than usual, as our customers&#8217; priorities may change or they may have greater uncertainty regarding the availability of funding for our solutions as a result.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Changes in the availability of federal funding to support local law enforcement efforts could impact our business.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Many of our customers rely to some extent on funds from the U.S. federal government in order to purchase and pay for our solutions. Any reduction in federal funding for local law enforcement efforts could result in our customers having less access to funds required to continue, renew, expand or pay for our solutions. Social unrest, protests against racial inequality and protests against police brutality have increased in past years. In addition, four members of Congress previously requested the Inspector General of the Department of Homeland Security to investigate the appropriateness of the use of federal funds to purchase our ShotSpotter solution. Furthermore, the New York Comptroller previously issued a report with certain conclusions questioning the accuracy and value of our ShotSpotter solution, that we disputed in a formal reply on the basis that they were misinformed and did not give adequate weight to the New York Police Department&#8217;s views. Changes in the availability of federal funding, such as under American Rescue Plan Act of 2021 (&#8220;ARPA&#8221;) or due to policies implemented by DOGE and federal agencies under the Trump administration, may lead to changes in the operations of federal agencies, which may adversely impact our business and operating results. These events may directly or indirectly affect municipal and police agency budgets, including federal funding available to current and potential customers. If federal funding is reduced or eliminated and our customers cannot find alternative sources of funding to purchase our solutions, our business will be harmed.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Real or perceived false positive gunshot alerts or false positive security threat detection, or failure or perceived failure to generate alerts for actual gunfire or missed weapon detection could adversely affect our customers and their operations, damage our brand and reputation and adversely affect our growth prospects and results of operations.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A false positive alert, in which a non-gunfire incident is reported as gunfire or detection of items that do not actually represent security threats, could result in an unnecessary rapid deployment of police officers and first responders, which</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">38</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">may raise unnecessary fear among the occupants of a community or facility, and may be deemed a waste of police and first responder resources. A failure to alert law enforcement or security personnel of actual gunfire or security threats (false negative) or missed weapon detection could result in a less rapid or no response by police officers and first responders, increasing the probability of injury or loss of life. Both false positive alerts and the failure to generate alerts of actual gunfire or security threats (false negative) or missed weapon detection may result in customer dissatisfaction, potential loss of confidence in our solutions, and potential liabilities to customers or other third parties, any of which could harm our reputation and adversely impact our business and operating results. Additionally, third parties may misunderstand or misrepresent what constitutes a false positive or false negative and generate negative publicity regarding our solutions. For example, a June 2024 report by the New York City Comptroller appears to argue that any incident that does not result in a police report is a false positive. The perception of a false positive alert or of a failure to generate an alert or missed weapon detection, even where our customers understand that our solutions were utilized correctly, could lead to negative publicity or harm the public perception of our solutions, which could harm our reputation and adversely impact our business and operating results.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">The nature of our business may result in undesirable press coverage or other negative publicity, which could adversely affect our growth prospects and results of operations.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our solutions are used to assist law enforcement and first responders in the event that gunfire is detected. Even when our solutions work as intended, the incidents detected by our solutions could lead to injury, loss of life and other negative outcomes, and such events are likely to receive negative publicity. If we fail to detect an incident, or if we detect an incident, such as a terrorist attack or active-shooter event, but the response time of law enforcement or first responders is not sufficiently quick to prevent injury, loss of life, property damage or other adverse outcomes, we may receive negative media attention. At times, our data or information concerning our techniques and processes may become a matter of public record due to legal or other obligations (for example, as a result of public-records requests or subpoenas to provide information or to testify in court), and we may receive negative media attention as a result.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our reputation and our business may be harmed by inaccurate reporting, which could have an adverse impact on new sales or renewals or expansions of coverage areas by existing customers, which would adversely impact our financial results and future prospects. For example, in July 2021, VICE Media, LLC (&#8220;VICE&#8221;) falsely accused us of illegal behavior, which had a material adverse effect on our business. We initiated a defamation lawsuit against VICE that has since been dismissed.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The role of our solutions and our personnel in criminal prosecutions or other court proceedings may result in unfavorable judicial rulings that generate negative publicity or otherwise adversely impact new sales or renewals or expansions of coverage areas by existing customers, which would adversely impact our financial results and future prospects. For instance, a court ruling limiting or excluding evidence related to information gathered through our systems or to the operation of our systems in a judicial proceeding could harm public perceptions of our business and solutions.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Economic uncertainties or downturns, or political changes, could limit the availability of funds available to our existing and potential customers, which could materially and adversely affect our business.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Economic uncertainties or downturns could adversely affect our business and operating results. Negative conditions in the general economy both in the United States and abroad, including conditions resulting from changes in gross domestic product growth, labor market shortages, the imposition of tariffs, inflation, interest rates, financial and credit market fluctuations, political deadlock, natural catastrophes, warfare, geopolitical tensions, terrorist attacks, climate change and global pandemics, could cause a decrease in funds available to our existing and potential customers and negatively affect the rate of growth of our business. Changes in the availability of federal funding, such as under ARPA, and the leadership of federal agencies under the Trump administration, including return-to-office policy, hiring freeze, layoffs, and other policies implemented by DOGE and federal agencies under the Trump Administration, may lead to changes in the operations of federal agencies, which may adversely impact our business and operating results.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">These economic conditions may make it extremely difficult for our customers and us to forecast and plan future budgetary decisions or business activities accurately, and they could cause our customers to reevaluate their decisions to purchase our solutions, which could delay and lengthen our sales cycles or result in cancellations of planned purchases. Furthermore, during challenging economic times or as a result of political changes, our customers may tighten their budgets and face constraints in gaining timely access to sufficient funding or other credit, which could result in an impairment of their ability to make timely payments to us. In turn, we may be required to increase our allowance for doubtful accounts, which would adversely affect our financial results.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We cannot predict the timing, strength or duration of any economic slowdown, instability or recovery, generally or within any particular industry, or the impact of political changes. If the economic conditions of the general economy or</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">39</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">industries in which we operate worsen from present levels, or if past political changes result in less funding being available to purchase our solutions, our business, operating results, financial condition and cash flows could be adversely affected.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">New competitors may enter the market for our public safety solutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If cities and other government entities increase their efforts to reduce gun violence or our solutions gain visibility in the market, companies could decide to enter into the public safety solutions market and thereby increase the competition we face. In addition to other gunshot detection products, vehicle and plate identification and weapons detection, we also compete with other technologies and solutions targeting our public safety customers&#8217; resources for law enforcement, security teams and crime prevention. Our competitors could benefit from the disclosure of our data or information concerning our techniques and processes due to legal or other obligations (for example, as a result of public-records requests or subpoenas to provide information or to testify in court). Because there are several possible uses for these limited budgetary resources, if we are not able to compete successfully for these limited resources, our business may not grow as we expect, which could adversely impact our revenues and operating results.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concerns regarding privacy and government-sponsored surveillance may deter customers from purchasing our solutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Governmental agencies and private citizens have become increasingly sensitive to real or perceived government or third-party surveillance and may wrongly believe that our outdoor sensors allow customers to listen to private conversations and monitor private citizen activity. Our sensors are not designed for &#8220;live listening&#8221; and are triggered only by loud impulsive sounds that may likely be gunfire. However, perceived privacy concerns may result in negative media coverage and efforts by private citizens to persuade municipalities, educational institutions or other potential customers not to purchase our precision policing solutions for their communities, campuses or facilities. In addition, laws may exist or be enacted to address such concerns that could impact our ability to deploy our solutions. For example, the City of Toronto, Canada decided against using SoundThinking solutions because the Ministry of the Attorney General of Ontario indicated that it may compromise Section 8 of Canada&#8217;s Charter of Rights and Freedoms, which relates to unreasonable search and seizure. If customers choose not to purchase our solutions due to privacy or surveillance concerns, then the market for our solutions may develop more slowly than we expect, or it may not achieve the growth potential we expect, any of which would adversely affect our business and financial results.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Ongoing social unrest may have a material adverse effect on our business, the future magnitude or duration of which we cannot predict with accuracy.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We may be adversely affected by ongoing social unrest, protests against racial inequality and protests against police brutality or increases in such unrest that may occur in the future, and such unrest may be exacerbated by inaccurate information or negative publicity regarding our solutions. These events may directly or indirectly affect police agency budgets and funding available to current and potential customers. Participants in these events may also attempt to create the perception that our solutions are contributing to the &#8220;problem&#8221; which may adversely affect us, our business and results of operations, including our revenues, earnings and cash flows from operations.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Strategic and Operational Risks</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">If we are unable to sell our solutions into new markets, or cross-sell our other solutions to our existing customers, our revenues may not grow.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Part of our growth strategy depends on our ability to increase sales of our security and public safety solutions in markets outside of the United States. and to increase sales of our other solutions to our existing ShotSpotter customers. In addition, we anticipate expanding our SafePointe weapons detection solution into other verticals such as healthcare and casino gaming. We are focused on expanding the sales of these solutions into new markets, but customers in these new markets may not be receptive or sales may be delayed beyond our expectations, causing our revenue growth and growth prospects to suffer. We are also trying to increase our cross-selling efforts targeted at our existing customers, for example by encouraging our existing ShotSpotter customers to implement our other solutions such as CaseBuilder and ResourceRouter but there is no assurance that our existing customers will be receptive to our other solutions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our ability to successfully face these challenges depends on several factors, including increasing the awareness of our solutions and their benefits; the effectiveness of our marketing programs; the costs of our solutions; our ability to attract, retain and effectively train sales and marketing personnel; and our ability to develop relationships with communication carriers and other partners. If we are unsuccessful in developing and marketing our solutions into new markets, or growing our revenues from our existing customers through cross-selling, new markets for our solutions might</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">40</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">not develop or might develop more slowly than we expect, or we may not be able to expand our relationships with our existing customers, all of which would harm our revenues and growth prospects.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">The failure of our solutions to meet our customers&#8217; expectations or of our solutions generally could, in some cases, result in injury or loss of life, and could harm our reputation, which may have a material adverse effect on our business, operating results and financial condition.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Promoting and demonstrating the utility of our solutions as useful, reliable and important tools for law enforcement and security personnel is critical to the success of our business. Our ability to secure customer renewals, expand existing customer coverage areas, and enter into new customer contracts is dependent on our reputation and our ability to deliver our solutions effectively. We believe that our reputation among police departments using SoundThinking solutions is particularly important to our success. Our ability to meet customer expectations will depend on a wide range of factors, including:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">our ability to continue to offer high-quality, innovative and accurate precision policing solutions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">our ability to maintain continuous gunshot detection monitoring during high outdoor-noise activity periods such as New Year&#8217;s Day, the Fourth of July and Cinco de Mayo, and Carnival for international deployments;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">our ability to maintain high customer satisfaction, including meeting our service level agreements standards;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the perceived value and quality of our solutions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">differences in opinion regarding the metrics that measure the success of our solutions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">our ability to successfully communicate the unique value proposition of our solutions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">our ability to provide high-quality customer support;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">any misuse or perceived misuse of our solutions;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">interruptions, delays or attacks on our platform;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">litigation- or regulation-related developments; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">damage to or degradation of our sensors or sensor network and cameras by third parties.</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In some cases, if our solutions fail to detect threats such as a firearm or other potential weapon or explosive device, or if our products contain undetected errors or defects, these failures or errors could result in injury or loss of life, which could harm our brand and reputation, subject us to litigation and potential claims against us, and have an adverse effect on our business, operating results and financial condition. There is no guarantee that our solutions will detect and prevent all attacks, especially in light of the rapidly changing security landscape to which it must respond, as well as unique factors that may be present in our customers&#8217; operating environments. If our products fail to detect security threats for any reason, including failures due to customer personnel or security processes, it may also result in significant costs, the attention of our key personnel could be diverted, our customers may delay or withhold payment to us or elect not to renew or cause other significant customer relations problems to arise.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Interruptions or performance problems associated with our technology and infrastructure may adversely affect our business and results of operations.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We have in the past experienced, and may in the future experience, performance issues due to a variety of factors, including infrastructure changes, human or software errors, intentional or accidental damage to our technology (including sensors and cameras), website or third-party hosting disruptions or capacity constraints due to a number of potential causes including technical failures, natural disasters or security attacks. If our security is compromised, our platform is unavailable or our users are unable to receive our alerts or otherwise communicate with our IRC reviewers, within a reasonable amount of time or at all, our business could be negatively affected. In some instances, we may not be able to identify the cause or causes of these performance problems within an acceptable period of time.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In addition, our IRC department personnel operate either in a hybrid work model or out of our offices. Any interruption or delay in service from our IRC, such as from a communications or power outage, could limit our ability to deliver our solutions. In addition, it may become increasingly difficult to maintain and improve the performance of our solutions, especially during peak usage times as the capacity of our IRC operations reaches its limits. If there is an interruption or delay in service from our IRC operations and a gunshot is detected but not reviewed in the allotted time, our software will flag the incident for off-line review. This may result in delayed notifications to our customers and as a</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">41</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">result, we could experience a decline in customer satisfaction with our solutions and our reputation and growth prospects could be harmed.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We expect to continue to make significant investments to maintain and improve the performance of our solutions. To the extent that we do not effectively address capacity constraints, upgrade our systems as needed and continually develop our technology to accommodate actual and anticipated changes in technology, our business, operating results and financial condition may be adversely affected.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We rely on wireless carriers to provide access to wireless networks through which our acoustic sensors communicate with our cloud-based backend and with which we provide our notification services to customers, and any interruption of such access would impair our business.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We rely on wireless carriers, mainly AT&amp;T and Verizon, to provide access to wireless networks for machine-to-machine data transmissions, which are an integral part of our services. Our wireless carriers may suspend wireless service to expand, maintain or improve their networks. These wireless carriers perform routine maintenance and periodic software and firmware updates that may damage our sensors or make them inoperable. Any suspension or other interruption of services would adversely affect our ability to provide our services to our customers and may adversely affect our reputation. In addition, the terms of our agreements with these wireless carriers provide that either party can cancel or terminate the agreement for convenience. If one of our wireless carriers were to terminate its agreement with us, we would need to source a different wireless carrier and/or modify our equipment during the notice period in order to minimize disruption in the performance of our solutions. Price increases or termination by our wireless carriers or changes to existing contract terms could have a material adverse effect on our business, operating results and financial condition.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Furthermore, our reliance on wireless carriers may require updates to our technology and making such updates could also result in interruptions in our service or increase our costs of operations. We may not be able to successfully implement new technologies or adapt existing technologies to changing market demands. If we are unable to adapt timely to changing technologies, market conditions or customer preferences, our business, operating results and financial condition could be materially and adversely affected.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Natural disasters, infectious disease outbreaks, power outages and other events outside of our control may impact us or our customers and harm our operating results and financial condition.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We recognize revenue on a subscription basis as our solutions are provided to our customers over time. If our services are disrupted due to natural disasters, infectious disease outbreaks, power outages or other events that we cannot control, we may not be able to continue providing our solutions as expected.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">When we stop providing coverage, we also stop recognizing revenues as a result of the affected subscription agreement. If we are forced to discontinue our services due to natural disasters, power outages and other events outside of our control, our revenues may decline, which would negatively impact our results of operations and financial condition. In addition, we may face liability for damages caused by our sensors in the event of heavy weather, hurricanes or other natural disasters. We may also incur additional costs to repair or replace installed sensor networks damaged by heavy weather, hurricanes or other natural disasters.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any of our facilities or operations may be harmed or rendered inoperable by natural or man-made disasters, including earthquakes, tornadoes, hurricanes, wildfires, floods, nuclear disasters, acts of terrorism or other criminal activities, global pandemics, and power outages, which may render it difficult or impossible for us to operate our business for some period of time or decrease productivity. For example, our primary IRC and a data center that hosts some of our customer services are located in the San Francisco Bay Area, a region known for seismic activity. Our facilities would likely be costly to repair or replace, and any such efforts would likely require substantial time. In addition, we expect to continue to work in a hybrid work model for the foreseeable future. This policy may negatively impact productivity of our employees.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any disruptions in our operations could negatively impact our business and operating results and harm our reputation. In addition, we may not carry business insurance or may not carry sufficient business insurance to compensate for losses that may occur. Any such losses or damages could have a material adverse effect on our business, operating results and financial condition. In addition, the facilities of significant vendors, including the manufacturer of our proprietary acoustic sensor, may be harmed or rendered inoperable by such natural or man-made disasters, which may cause disruptions, difficulties or material adverse effects on our business.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">The incurrence of debt may impact our financial position and subject us to additional financial and operating</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">42</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">restrictions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We have a revolving credit facility with Umpqua Bank with a revolving credit commitment of $25.0 million that matures on October 15, 2025.  As of June 30, 2025, we had $4.0 million outstanding on our line of credit.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Under the credit agreement governing our revolving credit facility with Umpqua Bank, we are subject to various negative covenants that limit, subject to certain exclusions, our ability to incur indebtedness, make loans, invest in or secure the obligations of other parties, pay or declare dividends, make distributions with respect to our securities, redeem outstanding shares of our stock, create subsidiaries, materially change the nature of our business, enter into related party transactions, engage in mergers and business combinations, the acquisition or transfer of our assets outside of the ordinary course of business, grant liens or enter into collateral relationships involving company assets or reincorporate, reorganize or dissolve the company. These covenants could adversely affect our financial health and business and future operations by, among other things:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:0;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">making it more difficult to satisfy our obligations, including under the terms of the Umpqua Credit Agreement;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">limiting our ability to refinance our debt on terms acceptable to us or at all;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">limiting our flexibility to plan for and adjust to changing business and market conditions and increasing our vulnerability;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">limiting our ability to use our available cash flow to fund future acquisitions, working capital, business activities, and other general corporate requirements; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">limiting our ability to obtain additional financing for working capital to fund growth or for general corporate purposes, even when necessary to maintain adequate liquidity.</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We are also required to maintain certain financial covenants tied to our leverage, interest charges and profitability. Our ability to meet such covenants (those negative covenants discussed in the preceding paragraph) or other restrictions can be affected by events beyond our control, and our failure to comply with the financial and other covenants would be an event of default under the Umpqua Credit Agreement. If an event of default under the Umpqua Credit Agreement, has occurred and is continuing, the outstanding borrowings thereunder could become immediately due and payable, and we would then be required to cash collateralize any letters of credit then outstanding, and the lender could refuse to permit additional borrowings under the facility. We have in the past obtained waivers for the financial covenant tied to our profitability, the acquisition and investment covenants related to our acquisition of SafePointe and name change covenant for failure to provide notice of our corporate name change and of the name change of LEEDS, LLC to Technologic Solutions, LLC. We cannot assure you that we would have sufficient assets to repay those borrowings and, if we are unable to repay those amounts, the lender could proceed against the collateral granted to them to secure such indebtedness. We have pledged substantially all of our assets as collateral, and an event of default would likely have a material adverse effect on our business.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">The competitive landscape for our security solutions is evolving.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The market for security solutions for university campuses, corporate campuses, hospitals, casinos and transportation and key infrastructure centers includes a number of available options, such as video surveillance and increased human security presence. Because there are several possible uses of funds for security needs, we may face increased challenges in demonstrating or distinguishing the benefits of ShotSpotter for Campus and ShotSpotter for Corporate and establishing the benefits of SafePointe for hospitals or casinos as we try to expand into such markets. If we experience declining interest in any of our offerings, we may cease offering such impacted solution in the future.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Failure to effectively develop and expand our sales and marketing capabilities could harm our ability to increase our customer base and achieve broader market acceptance of our solutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">To increase total customers and customer coverage areas and to achieve broader market acceptance of our solutions, we will need to expand our sales and marketing organization and increase our business development resources, including the vertical and geographic distribution of our sales force and our teams of account executives focused on new accounts and responsible for renewal and growth of existing accounts.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our business requires that our sales personnel have particular expertise and experience in working with law enforcement agencies, other government organizations and higher education institutions. We may not achieve revenue growth from expanding our sales force if we are unable to hire, develop and retain talented sales personnel with appropriate</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">43</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">experience, if our new sales personnel are unable to achieve desired productivity levels in a reasonable period of time or if our sales and marketing programs are not effective.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our strategy includes pursuing acquisitions, and our inability to successfully integrate newly acquired technologies, assets or businesses, or our becoming subject to certain liabilities assumed or incurred with our acquisitions, may harm our financial results. Future acquisitions of technologies, assets or businesses, which are paid for partially or entirely through the issuance of stock or stock rights, could dilute the ownership of our existing stockholders.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We acquired Technologic in November 2020, Forensic Logic in January 2022 and SafePointe and intellectual property assets in August 2023 in order to enhance our SafetySmart platform. We will continue to evaluate and consider potential strategic transactions, including acquisitions of, or investments in, businesses, technologies, services, products and other assets in the future. We also may enter into relationships with other businesses to expand our platform and applications, which could involve preferred or exclusive licenses, additional channels of distribution, discount pricing or investments in other companies.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We believe that part of our continued growth will be driven by acquisitions of other companies or their technologies, assets, businesses and teams. Acquisitions in the future that we complete will give rise to risks, including:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">incurring higher than anticipated capital expenditures and operating expenses;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">failing to assimilate the operations and personnel or failing to retain the key personnel of the acquired company or business;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">failing to integrate the acquired technologies, or incurring significant expense to integrate acquired technologies, into our platform and applications;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">disrupting our ongoing business;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">diverting our management&#8217;s attention and other company resources;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">failing to maintain uniform standards, controls and policies;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">incurring significant accounting charges;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">impairing relationships with our customers and employees;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">finding that the acquired technology, asset or business does not further our business strategy, that we overpaid for the technology, asset or business or that we may be required to write off acquired assets or investments partially or entirely;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">failing to realize the expected synergies of the transaction;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">being exposed to unforeseen liabilities and contingencies that were not identified prior to acquiring the company; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">being unable to generate sufficient revenues and profits from acquisitions to offset the associated acquisition costs.</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Fully integrating an acquired technology, asset or business into our operations may take a significant amount of time. We may not be successful in overcoming these risks or any other problems encountered with the acquisition of and integration of our prior acquisitions or any future acquisitions. To the extent that we do not successfully avoid or overcome the risks or problems related to any such acquisitions, our results of operations and financial condition could be harmed. Acquisitions also could impact our financial position and capital requirements or could cause fluctuations in our quarterly and annual results of operations. Acquisitions could include significant goodwill and intangible assets, which may result in future impairment charges that would reduce our stated earnings. We may incur significant costs in our efforts to engage in strategic transactions and these expenditures may not result in successful acquisitions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Additionally, there may be liabilities that we fail to discover while conducting due diligence for acquisitions, that we inadequately assess or that are not properly disclosed to us. In particular, to the extent that any acquired company failed to comply with or otherwise violated applicable laws or regulations, failed to fulfill contractual obligations to counterparties or incurred material liabilities or obligations to other parties that are not identified during the diligence process, we, as the successor owner, may be financially responsible for these violations, failures and liabilities and may suffer financial or reputational harm or otherwise be adversely affected. We also may be subject to litigation or other claims in connection with an acquired company. Any material liabilities we incur that are associated with our acquisitions</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">44</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">could harm our business, operating results and financial condition.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We expect that the consideration we might pay for any future acquisitions of technologies, assets, businesses or teams could include stock, rights to purchase stock, cash or some combination of the foregoing. If we issue stock or rights to purchase stock in connection with future acquisitions, net income per share and then-existing holders of our common stock may experience dilution.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">The nature of our business exposes us to inherent liability risks.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our gunshot detection solutions are designed to communicate real-time alerts of gunfire incidents to police officers and first responders. Similarly, our weapons detection solution obtained from our SafePointe acquisition is designed to identify potential threats and alert security personnel. Due to the nature of such applications, we are potentially exposed to greater risks of liability for employee acts or omissions or system failures than may be inherent in other businesses. Although substantially all of our customer agreements contain provisions limiting our liability to our customers, we cannot be certain that these limitations will be enforced or that the costs of any litigation related to actual or alleged omissions or failures would not have a material adverse effect on us even if we prevail. Further, certain of our insurance policies and the laws of some states may limit or prohibit insurance coverage for punitive or certain other types of damages or liability arising from gross negligence, or other issues, such as damages caused due to installation of our sensors on buildings owned by third parties, and we cannot assure you that we are adequately insured against the risks that we face.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Real or perceived errors, failures, or bugs in our software could adversely affect our operating results and growth prospects.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Because our software is complex, undetected errors, failures or bugs may occur. Our software is often installed and used with different operating systems, system management software, equipment and networking configurations, which may cause errors or failures of our software or other aspects of the computing environment into which it is deployed. In addition, deployment of our software into computing environments may expose undetected errors, compatibility issues, failures or bugs in our software. Despite our testing, errors, failures, or bugs may not be found in our software until it is released to our customers. Moreover, our customers could incorrectly implement or inadvertently misuse our software, which could result in customer dissatisfaction and adversely impact the perceived utility of our products as well as our brand. Any of these real or perceived errors, compatibility issues, failures or bugs in our software could result in negative publicity, reputational harm, loss of or delay in market acceptance of our software, loss of competitive position or claims by customers for losses sustained by them. In any such event, we may be required, or may choose, for customer relations or other reasons, to expend additional resources in order to correct the problem. Alleviating any of these problems could require significant expenditures of our capital and other resources and could cause interruptions or delays in the use of our solutions, which could cause us to lose existing or potential customers and could adversely affect our operating results and growth prospects.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">If our information technology systems or data, or those of third parties with whom we work, are or were compromised, our customers may be harmed and we could experience adverse consequences resulting from such compromise, including, but not limited to, regulatory investigations or actions; litigation or mass arbitration demands; fines and penalties; disruptions of our business operations; reputation harm; loss of revenue or profits; loss of customers or sales; and other adverse consequences.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our operations and those of the third parties with whom we work, involve the processing, collection, receipt, storage, storage processing, generation, use, transfer, disclosure, protection, disposal of, transmission, and sharing (collectively, &#8220;processing&#8221;) of proprietary, confidential and sensitive data, including personal information, intellectual property, trade secrets and other sensitive information such as gunfire incident data, including date, time, address and GPS coordinates, occurring in our customer&#8217;s coverage area (collectively, &#8220;sensitive information&#8221;). Additionally, our systems process information from third parties including criminal justice information.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Cyber-attacks, malicious internet-based activity, online and offline fraud, and other similar activities threaten the confidentiality, integrity, and availability of our sensitive information and information technology systems, and those of the third parties with whom we work. Such threats are prevalent and continue to increase generally, and are increasingly difficult to detect, and come from a variety of sources, including traditional computer &#8220;hackers,&#8221; threat actors, &#8220;hacktivists,&#8221; organized criminal threat actors, personnel (such as through theft or misuse), sophisticated nation states, and nation-state-supported actors. Some actors now engage and are expected to continue to engage in cyber-attacks, including without limitation nation-state actors for geopolitical reasons and in conjunction with military conflicts and defense activities. During times of war and other major conflicts, we, the third parties with whom we work, and our</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">45</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">customers may be vulnerable to a heightened risk of these attacks, including retaliatory cyber-attacks, that could materially disrupt our systems and operations, supply chain, and ability to produce, sell and distribute our products and services.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We and the third parties upon which we rely may be subject to a variety of evolving threats, including but not limited to social-engineering attacks (including through deep fakes, which may be increasingly more difficult to identify as fake, phishing attacks), malicious code (such as viruses and worms), malware (including as a result of advanced persistent threat intrusions), denial-of-service attacks, credential stuffing, credential harvesting, personnel misconduct or error, and supply-chain attacks, software bugs, server malfunctions, software or hardware failures, loss of data or other information technology assets, attacks enhanced or facilitated by AI, telecommunications failures, earthquakes, fires, floods, and other similar threats. For example, we have been notified of security incidents impacting some of our services providers in the past.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In particular, ransomware attacks are becoming increasingly prevalent and severe and can lead to significant interruptions in our operations, ability to provide our products or services, loss of data and income, reputational harm, and diversion of funds. Extortion payments may alleviate the negative impact of a ransomware attack, but we may be unwilling or unable to make such payments due to, for example, applicable laws or regulations prohibiting such payments. Remote work has increased risks to our information technology systems and data, as more of our employees utilize network connections, computers and devices outside our premises or network, including working at home, while in transit and in public locations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">It may be difficult and/or costly to detect, investigate, mitigate, contain, and remediate a security incident. Our efforts to do so may not be successful. Actions taken by us or the third parties with whom we work to detect, investigate, mitigate, contain, and remediate a security incident could result in outages, data losses, and disruptions of our business. Threat actors may also gain access to other networks and systems after a compromise of our networks and systems. As we increase our customer base and our brand becomes more widely known and recognized, third parties may increasingly seek to compromise our security controls or gain unauthorized access to customer data or other sensitive information. Further, because of the nature of the services that we provide to our customers, we may be a unique target for attacks.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Future or past business transactions (such as acquisitions or integrations, including of Forensic Logic, LLC and SafePointe, LLC) expose us to additional cybersecurity risks and vulnerabilities, as we and our systems are negatively affected by vulnerabilities and weaker security controls present in acquired or integrated entities&#8217; systems, products, processes and technologies. Furthermore, we may not have adequate visibility into security issues of such acquired or integrated entities, may discover security issues that were not found during due diligence of such entities, and it may be difficult to integrate companies and their products into our information technology environment and security program.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We rely on third parties to operate critical business systems to process sensitive information in a variety of contexts, including, without limitation, cloud-based infrastructure, data center facilities, encryption and authentication technology, employee email, content delivery to customers, and other functions. We also rely on third parties to provide other products, services, parts, or otherwise to operate our business. Our ability to monitor these third parties&#8217; information security practices is limited, and these third parties may not have adequate information security measures in place. If the third parties with whom we work experience a security incident or other interruption, we have in the past and could in the future experience adverse consequences. If third parties with whom we work, such as vendors or developers, violate applicable laws or our security policies, such violations may also put our systems and data at risk and could in turn have an adverse effect on our business. In addition, such a violation could expose sensitive data including; criminal justice information, and other data we are contractually obliged to keep confidential. While we may be entitled to damages if the third parties with whom we work fail to satisfy their privacy or security-related obligations to us, any award may be insufficient to cover our damages, or we may be unable to recover such award. In addition, supply-chain attacks have increased in frequency and severity, and we cannot guarantee that third parties&#8217; infrastructure in our supply chain or that of the third parties with whom we work have not been compromised.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">While we have implemented security measures designed to protect against security incidents, there can be no assurance that these measures will be effective. We take steps to detect and remediate vulnerabilities in our information systems (such as our hardware and/or software, including that of third parties with whom we work). We have not and may not in the future, however, detect and remediate all such vulnerabilities including on a timely basis. Vulnerabilities could be exploited and result in a security incident. Further, we may experience delays in developing and deploying remedial measures designed to address any such identified vulnerabilities.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We employ a shared responsibility model where our customers are responsible for using, configuring and otherwise implementing security measures related to our platform, services and products in a manner that meets applicable cybersecurity standards, complies with laws, and addresses their information security risk. As part of this shared responsibility security model, we make certain security features available to our customers that can be implemented at our</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">46</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">customers&#8217; discretion, or identify security areas or measures for which our customers are responsible.  For example, we recommend that customers implement  Multifactor Authentication (MFA) when using our products. In certain cases where our customers choose not to implement, or incorrectly implement, those features or measures, misuse our services, or otherwise experience their own vulnerabilities, policy violations, credential exposure or security incidents, even if we are not the cause of a resulting customer security issue or incident, our customer relationships, reputation, and revenue have been and in the future may be adversely impacted.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any of the previously identified or similar threats have in the past and may in the future cause a security incident or other interruption that could result in unauthorized, unlawful or accidental acquisition, modification, destruction, loss, alteration, encryption, disclosure of or access to our sensitive information or our information technology systems, or those of the third parties upon whom we rely. A security incident or other interruption could disrupt our ability (and that of third parties upon whom we rely) to provide our solutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We may expend significant resources or modify our business activities to try to protect against security incidents. Certain data privacy and security obligations have required us to implement and maintain specific security measures or industry-standard or reasonable security measures to protect our information technology systems and sensitive information.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Applicable data privacy and security obligations may require us, or we may voluntarily choose, to notify relevant stakeholders, including affected individuals, customers, regulators and investors, of security incidents, or to take other actions, such as providing credit monitoring and identity theft protection services. Such disclosures and related actions can be costly, and the disclosure or the failure to comply with such applicable requirements could lead to adverse consequences. For example, many governments have enacted laws requiring companies to notify individuals of data security incidents or unauthorized transfers involving certain types of personal information. In addition, some of our customers contractually require notification of any data security incident.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If we (or a third party with whom we work) experience a security incident or are perceived to have experienced a security incident, we may experience material adverse consequences, such as government enforcement actions (for example, investigations, fines, penalties, audits, and inspections); additional reporting requirements and/or oversight; restrictions on processing sensitive information (including personal information); litigation (including class claims); indemnification obligations; negative publicity; reputational harm; monetary fund diversions; diversion of management attention; interruptions in our operations (including availability of data); financial loss; and other similar harms. Security incidents and attendant material consequences may prevent or cause customers to stop using our solutions, deter new customers from using our solutions, and negatively impact our ability to grow and operate our business. Our contracts may not contain limitations of liability, and even where they do, there can be no assurance that limitations of liability in our contracts are sufficient to protect us from liabilities, damages, or claims related to our data privacy and security obligations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">While we maintain general liability insurance coverage and coverage for errors or omissions, we cannot be sure that such coverage would be adequate or sufficient to protect us from liabilities arising out of our privacy and security practices, that such coverage will continue to be available on commercially reasonable terms or at all, or that such coverage will pay future claims.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In addition to experiencing a security incident, third parties may gather, collect, or infer sensitive information about us from public sources, data brokers, or other means that reveals competitively sensitive details about our organization and could be used to undermine our competitive advantage or market position.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We rely on the cooperation of customers and third parties to permit us to install our ShotSpotter sensors and SafePointe bollards on their facilities, and failure to obtain these rights could increase our costs or limit the effectiveness of our ShotSpotter and SafePointe solutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our ShotSpotter solution requires us to deploy ShotSpotter sensors in our customer coverage areas, which typically entails the installation of approximately 15 to 25 sensors per square mile. The ShotSpotter sensors are mounted on city facilities and third-party buildings, and occasionally on city or utility-owned light poles, and installing the sensors requires the consent of the property owners, which can be time-consuming to obtain and can delay deployment. Generally, we do not pay a site license fee in order to install our sensors, and our contractual agreements with these facility owners provide them the right to revoke permission to use their facility with notice of generally 60 days. Our SafePointe solution requires us to install sensors, cameras, and networking equipment on our customer&#8217;s property. SafePointe does not pay a site license fee to install our sensors, cameras, and networking equipment and is typically paid by the customer to complete the installation. In almost all cases, the property is owned by the customer, and no additional approvals or consents are required.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">47</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">To the extent that required consents delay our ability to deploy our solutions or facility owners do not grant permission to use their facilities, revoke previously granted permissions, or require us to pay a site license fee in order to install our sensors or bollards, our business may be harmed. If we were required to pay a site license fee in order to install sensors or bollards, our deployment expenses would increase, which would impact our gross margins. If we cannot obtain a sufficient number of sensor or bollard mounting locations that are appropriately dispersed in a coverage area, the effectiveness of our ShotSpotter and SafePointe solutions would be limited, and we may need to reduce the coverage area of the solution.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">If we lose our ability to share a significant agency&#8217;s dataset in our CrimeTracer platform, our ability to sell that product may be adversely affected.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Agencies typically share their private CJIS data sets with us through subscription agreements. If we lose access to their data sets because of a technical problem, such as a ransomware attack, or other issues that arise through no fault of our own that makes that data set inaccessible, this may result in the loss of a customer to a competitor, subscriptions not being renewed and may make it more difficult to sell CrimeTracer in that geographic region and to the federal market.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">If we fail to offer high-quality customer support, our business and reputation may suffer.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We offer customer support 24 hours a day, seven days a week, as well as training on best practices, forensic expertise and expert witness services. Providing these services requires that our personnel have specific experience, knowledge and expertise, making it more difficult for us to hire qualified personnel and to scale up our support operations. The importance of high-quality customer support will increase as we expand our business and pursue new customers. We may be unable to respond quickly enough to accommodate short-term increases in customer demand for support services or scale our services if our business grows. Increased customer demand for these services, without corresponding revenues, could increase our costs and harm our operating results. If we do not help our customers use applications within our solutions and provide effective ongoing support, our ability to sell additional applications to, or to retain, existing customers may suffer and our reputation with existing or potential customers may be harmed.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We rely on a limited number of suppliers and contract manufacturers, and our proprietary ShotSpotter sensors are manufactured by a single contract manufacturer.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We rely on a limited number of suppliers and contract manufacturers. In particular, we use a single manufacturer, with which we have no long-term contract and from which we purchase on a purchase-order basis, to produce our proprietary ShotSpotter sensors. Our reliance on a sole contract manufacturer increases our risks since we do not currently have any alternative or replacement manufacturers, and we do not maintain a high volume of inventory. In the event of an interruption in our supply from our sole contract manufacturer, we may not be able to develop alternate or secondary sources without incurring material additional costs and substantial delays. Furthermore, these risks could materially and adversely affect our business if one of our contract manufacturers is impacted by a natural disaster or other interruption at a particular location because each of our contract manufacturers produces our products from a single location. Although each of our contract manufacturers has alternative manufacturing locations, transferring manufacturing to another location may result in significant delays in the availability of our sensors. Also, many standardized components used broadly in our sensors are manufactured in significant quantities in concentrated geographic regions, particularly in Greater China. As a result, protracted regional crises, international trade measures, or issues with manufacturing facilities could lead to eventual shortages of necessary components. It could be difficult, costly and time consuming to obtain alternative sources for these components, or to change product designs to make use of alternative components. In addition, difficulties in transitioning from an existing supplier to a new supplier could create delays in component availability that would have a significant impact on our ability to fulfill orders for our products.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Many of the key components used to manufacture our proprietary ShotSpotter sensors also come from limited or sole sources of supply. In addition, the lead times associated with certain components are lengthy and preclude rapid changes in quantities and delivery schedules. Developing alternate sources of supply for these components may be time-consuming, difficult, and costly, and we or our suppliers may not be able to source these components on terms that are acceptable to us, or at all, which may undermine our ability to fill our orders in a timely manner.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For example, for our ShotSpotter sensors, it may take a significant amount of time to identify a contract manufacturer that has the capability and resources to build the sensors to our specifications. Identifying suitable suppliers and contract manufacturers is an extensive process that requires us to become satisfied with their quality control, technical capabilities, responsiveness and service, financial stability, regulatory compliance, and labor and other ethical practices. Accordingly, the loss of any key supplier or contract manufacturer could adversely impact our business, operating results and financial</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">48</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">condition.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our solutions use third-party software and services that may be difficult to replace or cause errors or failures of our solutions that could lead to a loss of customers or harm to our reputation and our operating results.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We license third-party software and depend on services from various third parties for use in our solutions. In the future, such software or services may not be available to us on commercially reasonable terms, or at all. Any loss of the right to use any of the software or services could result in decreased functionality of our solutions until equivalent technology is either developed by us or, if available from another provider, is identified, obtained and integrated, which could harm our business. In addition, any errors or defects in or failures of the third-party software or services could result in errors or defects in our solutions or cause our solutions to fail, which could harm our business and be costly to correct. Many of these providers attempt to impose limitations on their liability for such errors, defects or failures, and if enforceable, we may have additional liability to our customers or third-party providers that could harm our reputation and increase our operating costs.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We will need to maintain our relationships with third-party software and service providers, and obtain from such providers software and services that do not contain any errors or defects. Any failure to do so could adversely impact our ability to deliver effective products to our customers and could harm our operating results.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We use artificial intelligence in our products and services which may result in operational challenges, legal liability, reputational concerns and competitive risks.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We currently use and intend to leverage generative AI processes and algorithms and our own evolving cognitive and analytical applications into our daily operations, including by deploying generative AI into our products and services, which may result in adverse effects to our financial condition, results or reputation.  Generative AI products and services leverage existing and widely available technologies, such as Chat GPT-4 and its successors, or alternative large language models or other processes.  The use of generative AI processes at scale is relatively new, and may lead to challenges, concerns and risks that are significant or that we may not be able to predict, especially if our use of these technologies in our products and services becomes more important to our operations over time.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Use of generative AI in our products and services may be difficult to deploy successfully due to operational issues inherent to the nature of such technologies, and our customers may not adopt or integrate our new services as intended.  For example, AI algorithms use machine learning and predictive analytics which may lead to flawed, biased, and inaccurate results, which could lead to customer rejection or skepticism of such products.  Emerging ethical issues surround the use of AI, and if our deployment or use of AI becomes controversial, we may be subject to reputational risk.  Further, unauthorized use or misuse of AI by our employees or others may result in disclosure of confidential company and customer data, reputational harm, privacy law violations and legal liability. Our use of AI may also lead to novel and urgent cybersecurity risks, including the misuse of personal information, which may adversely affect our operations and reputation.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As a result, we may not be able to successfully integrate AI into our products, services and operations despite expending significant time and monetary resources to attempt to do so. Our investments in deploying such technologies may be substantial and may be more expensive than anticipated. If we fail to deploy AI as intended, our competitors may incorporate AI technology into their products or services more successfully than we do, which may impair our ability to effectively compete in the market.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Uncertainty in the legal regulatory regime relating to AI may require significant resources to modify and maintain business practices to comply with U.S. and non-U.S. laws, the nature of which cannot be determined at this time. Several jurisdictions around the globe, including Europe and certain U.S. states, have already proposed or enacted laws governing AI. For example, European regulators have proposed a stringent AI regulation, and we expect other jurisdictions will adopt similar laws.  Other jurisdictions may decide to adopt similar or more restrictive legislation that may render the use of such technologies challenging. Additionally, the disclosure and use of personal information in generative AI technologies is subject to various data privacy and security laws and other obligations. Our use of this technology could result in additional compliance costs, regulatory investigations and actions, and consumer lawsuits. Also, we use AI/ML to assist us in making certain decisions, which is regulated by certain privacy laws.  Due to inaccuracies or flaws in the inputs, outputs, or logic of the AI/ML, the model could be biased and could lead us to make decisions that could bias certain individuals (or classes of individuals), and adversely impact their rights, employment, and ability to obtain certain pricing, products, services, or benefits.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">If we do not or cannot maintain the compatibility of our platform with applications that our customers use, our business</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">49</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">could suffer.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Some of our customers choose to integrate our solutions with certain other systems used by our customers, such as real-time Technologic, Forensic Logic or SafePointe platforms or computer-aided dispatch systems. The functionality and popularity of our solutions depend, in part, on our ability to integrate our solutions into these systems. Providers of these systems may change the features of their technologies, restrict our access to their applications or alter the terms governing use of their applications in an adverse manner. Such changes could functionally limit or terminate our ability to use these technologies in conjunction with our solutions, which could negatively impact our customer service and harm our business. If we fail to integrate our solutions with applications that our customers use, we may not be able to offer the functionality that our customers need, and our customers may not renew their agreements, which would negatively impact our ability to generate revenues and adversely impact our business.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We are in the process of expanding our international operations, which exposes us to significant risks.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We currently operate in limited number of locations outside the United States. A key component to our business strategy is to expand our international operations to increase our revenues from customers outside of the United States as part of our growth strategy. Operating in international markets requires significant resources and management attention and will subject us to regulatory, economic and political risks in addition to those we already face in the United States. In addition, we will need to invest time and resources in understanding the regulatory framework and political environments of our potential customers overseas in order to focus our sales efforts. Because such regulatory and political considerations are likely to vary across jurisdictions, this effort will require additional time and attention from our sales team and could lead to a sales cycle that is longer than our typical process for sales in the United States. We also may need to hire additional employees and otherwise invest in our international operations in order to reach new customers. Because of our limited experience with international operations as well as developing and managing sales in international markets, our international expansion efforts may be delayed or may not be successful.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In addition, we face and will continue to face risks in doing business internationally that could adversely affect our business, including:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the potential impact of currency exchange fluctuations;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the need to comply with local data residency requirements;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the availability and reliability of local data centers and internet bandwidth providers;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the difficulty of staffing and managing international operations and the increased operations, travel, shipping and compliance costs associated with having customers in numerous international locations;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">potentially greater difficulty collecting accounts receivable and longer payment cycles;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the availability and cost of coverage by wireless carriers in international markets;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">higher or more variable costs associated with wireless carriers and other service providers;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the need to offer customer support in various languages;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">challenges in understanding and complying with local laws, regulations and customs in foreign jurisdictions, including laws regarding privacy and government surveillance;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">export controls and economic sanctions administered by the Department of Commerce Bureau of Industry and Security and the Treasury Department&#8217;s Office of Foreign Assets Control;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">compliance with various anti-bribery and anti-corruption laws such as the Foreign Corrupt Practices Act and United Kingdom Bribery Act of 2010;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">tariffs and other non-tariff barriers, such as quotas and local content rules;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">more limited protection for our intellectual property in some countries;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">adverse or uncertain tax consequences as a result of international operations;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">currency control regulations, which might restrict or prohibit our conversion of other currencies into U.S. dollars;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">restrictions on the transfer of funds;</span></div></div></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">50</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">deterioration of political relations between the United States and other countries; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">political or social unrest, global pandemics, or economic instability in a specific country or region in which we operate, which could have an adverse impact on our operations in that location.<br/></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Also, we expect that due to costs related to our international expansion efforts and the increased cost of doing business internationally, we will incur higher costs to secure sales to international customers than the comparable costs for domestic customers. As a result, our financial results may fluctuate as we expand our operations and customer base worldwide.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our failure to manage any of these risks successfully could harm our international operations, and adversely affect our business, operating results and financial condition.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We are dependent on the continued services and performance of our senior management and other key personnel, the loss of any of whom could adversely affect our business.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our future success depends in large part on the continued contributions of our senior management and other key personnel. In particular, the leadership of key management personnel is critical to the successful management of our company, the development of our products, and our strategic direction. We also depend on the contributions of key technical personnel.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We do not maintain &#8220;key person&#8221; insurance for any member of our senior management team or any of our other key employees. Our senior management and key personnel are all employed on an at-will basis, which means that they could terminate their employment with us at any time, for any reason and without notice. The loss of any of our key management personnel could significantly delay or prevent the achievement of our development and strategic objectives and adversely affect our business.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">If we are unable to attract, integrate and retain additional qualified personnel, including top technical talent, our business could be adversely affected.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our future success depends in part on our ability to identify, attract, integrate and retain highly skilled technical, managerial, sales and other personnel. We face intense competition for qualified individuals from numerous other companies, including other software and technology companies, many of whom have greater financial and other resources than we do. Some of these characteristics may be more appealing to high-quality candidates than those we have to offer. In addition, new hires often require significant training and, in many cases, take significant time before they achieve full productivity. We may incur significant costs to attract and retain qualified personnel, including significant expenditures related to salaries and benefits and compensation expenses related to equity awards, and we may lose new employees to our competitors or other companies before we realize the benefit of our investment in recruiting and training them. Moreover, new employees, especially those who work remotely, may not be or become as productive as we expect, as we may face challenges in adequately or appropriately integrating them into our workforce and culture. If we are unable to attract, integrate and retain suitably qualified individuals who are capable of meeting our growing technical, operational and managerial requirements, on a timely basis or at all, our business will be adversely affected.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Volatility or lack of positive performance in our stock price may also affect our ability to attract and retain our key employees. Many of our senior management personnel and other key employees have become, or will soon become, vested in a substantial amount of stock or stock options. Employees may be more likely to leave us if the shares they own or the shares underlying their vested options have significantly appreciated in value relative to the original purchase prices of the shares or the exercise prices of the options, or, conversely, if the exercise prices of the options that they hold are significantly above the market price of our common stock. If we are unable to appropriately incentivize and retain our employees through equity compensation, or if we need to increase our compensation expenses in order to appropriately incentivize and retain our employees, our business, operating results and financial condition would be adversely affected.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">International trade policies, including tariffs, sanctions and trade barriers may adversely affect our business, financial condition, results of operations and prospects.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The announcements of substantial new tariffs and other restrictive trade policies under the Trump administration have created a dynamic and unpredictable trade landscape, which may adversely impact our business. Although our current business model is not directly reliant on the import or export of physical goods, trade policies may indirectly adversely impact our business and operations. For example, many of our standardized components used broadly in our sensors are manufactured in significant quantities in concentrated geographic regions, particularly in Greater China. As a</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">51</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">result, the recently increased tariffs placed on components exported from China by the U.S. government will increase our costs of revenues.  Similarly, any current and future tariffs on hardware, networking infrastructure or other technology infrastructure used by us or our third-party vendors have raised expenses and could continue to raise costs, constrain supply or affect service reliability, which could harm our competitive position, reduce customer demand and damage customer relationships. In addition, many of our customers operate businesses that may be impacted by trade policies, which may result in decreased demand for our services or extended sales cycles as customers assess the impact of evolving trade policies on their operations and face increased costs or decreased revenue due to tariffs and trade restrictions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Trade disputes, trade restrictions, tariffs, and other political tensions between the United States and other countries may also exacerbate unfavorable macroeconomic conditions including inflationary pressures, foreign exchange volatility, financial market instability, and economic recessions or downturns, which may also negatively impact customer demand for our services, delay renewals or limit expansion opportunities with existing customers, limit our access to capital, or otherwise negatively impact our business and operations. Ongoing tariff and macroeconomic uncertainty has and may continue to contribute to volatility in the price of our common stock.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In addition, retaliatory trade policies or anti-U.S. sentiment in certain regions whether driven by trade tensions, political disagreements, or regulatory concerns may make customers and governments more hesitant to adopt solutions offered by U.S.-based providers. This may lead to increased preference for local competitors, changes to government procurement policies, heightened regulatory scrutiny, decreased intellectual property protections, delays in regulatory approvals or other retaliatory regulatory non-tariff policies, the introduction of trade barriers applicable to digital services, which may result in heightened international legal and operational risks and difficulties in attracting and retaining non-U.S. customers, suppliers, employees, partners and investors.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">While we continue to monitor trade developments, the ultimate impact of these risks remains uncertain and any prolonged economic downturn, escalation in trade tensions, or deterioration in international perception of U.S.-based companies could materially and adversely affect our business, results of operations, financial condition and prospects. In addition, tariffs and other trade developments have and may continue to heighten the risks related to the other risk factors described elsewhere in this report.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Legal and Regulatory Risks</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We and the third parties with whom we work are subject to stringent and evolving U.S. and foreign laws, regulations, and rules, contractual obligations, industry standards, policies and other obligations related to data privacy and security. Our (or the third parties with whom we work) actual or perceived failure to comply with such obligations could lead to regulatory investigations or actions; litigation (including class claims) and mass arbitration demands; fines and penalties; disruptions of our business operations; reputational harm; loss of revenue or profits; loss of customers or sales; and other adverse business consequences.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the ordinary course of business, we process confidential, proprietary, and/or sensitive information, including data collected by our sensors, personal information business data, trade secrets, and intellectual property. Accordingly, our data processing activities subject us to a variety of data privacy and security obligations, such as various laws, regulations, guidance, industry standards, external and internal privacy and security policies, contractual requirements, and other obligations relating to data privacy and security and restrictions on audio monitoring and the processing of personal information. In the United States, federal, state, and local governments have enacted numerous data privacy and security laws, including data breach notification laws, personal data privacy laws, consumer protection laws (e.g., Section 5 of the Federal Trade Commission Act), and other similar laws (e.g., wiretapping laws).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Numerous U.S. states have enacted comprehensive privacy laws that impose certain obligations on covered businesses, including providing specific disclosures in privacy notices and affording residents with certain rights concerning their personal information. As applicable, such rights may include the right to access, correct or delete certain personal information, and to opt-out of certain data processing activities, such as targeted advertising, profiling, and automated decision-making. The exercise of these rights may impact our business and ability to provide our products and services. Certain states also impose stricter requirements for processing certain personal information, including sensitive information, such as conducting data privacy impact assessments. These state laws allow for statutory fines for noncompliance.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For example the California Consumer Privacy Act of 2018 (&#8220;CCPA&#8221;), applies to personal information of consumers, business representatives, and employees who are California residents, and requires businesses to provide specific disclosures in privacy notices and honor requests of such individuals to exercise certain privacy rights. The CCPA provides for fines and allows private litigants affected by certain data breaches to recover significant statutory damages. Similar</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">52</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">laws are being considered in several other states, as well as at the federal and local levels, and we expect more states to pass similar laws in the future.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Outside the United States, an increasing number of laws, regulations, and industry standards govern data privacy and security.  For example, the European Union&#8217;s General Data Protection Regulation (&#8220;EU GDPR&#8221;), the United Kingdom&#8217;s GDPR (&#8220;UK GDPR&#8221;) (collectively, &#8220;GDPR&#8221;), Brazil&#8217;s General Data Protection Law (Lei Geral de Prote&#231;&#227;o de Dados Pessoais, or &#8220;LGPD&#8221;) (Law No. 13,709/2018), and China&#8217;s Personal Information Protection Law (&#8220;PIPL&#8221;) impose strict requirements for processing personal information.  For example, under the GDPR, companies may face temporary or definitive bans on data processing and other corrective actions; fines of up to 20 million Euros under the EU GDPR, 17.5 million pounds sterling under the UK GDPR or, in each case, 4% of annual global revenue, whichever is greater; or private litigation related to processing of personal information brought by classes of data subjects or consumer protection organizations authorized at law to represent their interests.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Additionally, we may be required, under various data privacy and security laws and other obligations, to obtain certain consents to process personal information. For example, some of our data processing practices may be challenged under wiretapping laws, if we obtain consumer information from third parties through various methods, including chatbot and session replay providers, or via third-party marketing pixels. These practices may be subject to increased challenges by class action plaintiffs. Our inability or failure to obtain consent for these practices could result in adverse consequences, including class action litigation and mass arbitration demands.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Furthermore, our business relies on the acquisition and sale of personal data, including data obtained from third-party data suppliers. Regulators are increasingly scrutinizing the activities of third-party data suppliers and acquisition and sale of personal data from or to third parties, and laws in the United States (including the CCPA and California&#8217;s Delete Act) and other jurisdictions, such as Europe (including through the GDPR and the ePrivacy Directive), are likewise regulating such activity. These laws pose additional, material compliance risks to such data suppliers, and these suppliers may not be able to provide us with personal information in compliance with these laws.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">For example, some data suppliers are required to register as data brokers under California and Vermont law and file reports with regulators, which exposes them to increased scrutiny.  Additionally, California&#8217;s Delete Act requires the California Privacy Protection Agency to establish by January 1, 2026 a mechanism to allow California consumers to submit a single, verifiable request to delete all of their personal information held by all registered data brokers and their service providers.  Moreover, data suppliers have recently been subject to increased litigation under various claims of violating certain state privacy laws. These laws and challenges may make it so difficult for us or our suppliers to provide the data that the costs associated with the data materially increase or may materially decrease the availability of data that data suppliers can provide. Obtaining and selling personal data from third parties carries risk to us. For example, we have registered as a data broker and file reports with certain regulators, which exposes us to increased scrutiny.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In addition, we may face compliance risks and limitations on our ability to use certain data provided by our third-party suppliers if those suppliers have not complied with applicable privacy laws, provided appropriate notice to data subjects, obtained necessary consents, or established a legal basis for the transfer and processing of the data by us. These challenges may make it so difficult for us and our suppliers to provide the data and the costs associated with the data materially increase or may materially decrease the availability of data that we or our data suppliers can provide.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We are also bound by contractual obligations related to data privacy and security, and our efforts to comply with such obligations may not be successful. For example, certain privacy laws, such as the GDPR and the CCPA, require our customers to impose specific contractual restrictions on their service providers. We publish privacy policies, marketing materials, whitepapers, and other statements, such as statements related to compliance with certain certifications or self-regulatory principles, concerning data privacy, security, and AI. Regulators in the United States are increasingly scrutinizing these statements, and if these policies, materials or statements are found to be deficient, lacking in transparency, deceptive, unfair, misleading, or misrepresentative of our practices, we may be subject to investigation, enforcement actions by regulators or other adverse consequences.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Obligations related to data privacy and security (and consumers&#8217; data privacy and security expectations) are quickly changing, becoming increasingly stringent, and creating uncertainty. Additionally, these obligations may be subject to differing applications and interpretations, which may be inconsistent or conflict among jurisdictions. Preparing for and complying with these obligations requires us to devote significant resources, which may necessitate changes to our services, information technologies, systems, and practices and to those of any third parties that process personal information on our behalf. In addition, these obligations may require us to change our business model. We may at times fail (or be perceived to have failed) in our efforts to comply with our data privacy and security obligations. Moreover, despite our efforts, our personnel or third parties with whom we work may fail to comply with such obligations, which could negatively impact our business operations.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">53</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">If we or the third parties with whom we work fail, or are perceived to have failed, to address or comply with applicable data privacy and security obligations, we could face significant consequences, including but not limited to: government enforcement actions (e.g., investigations, fines, penalties, audits, inspections, and similar); litigation (including class-action claims) and mass arbitration demands; additional reporting requirements and/or oversight; bans or restrictions on processing personal  information; orders to destroy or not use personal  information; and imprisonment of company officials. In particular, plaintiffs have become increasingly more active in bringing privacy-related claims against companies, including class claims and mass arbitration demands. Some of these claims allow for the recovery of statutory damages on a per violation basis, and, if viable, carry the potential for monumental statutory damages, depending on the volume of data and the number of violations. Any of these events could have a material adverse effect on our reputation, business, or financial condition, including but not limited to: loss of customers; interruptions or stoppages in our business operations; inability to process personal  information or to operate in certain jurisdictions; limited ability to develop or commercialize our products; expenditure of time and resources to defend any claim or inquiry; adverse publicity; or substantial changes to our business model or operations.</span></p><p style="font-size:10pt;margin-top:18pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Changes in tax laws or regulations that are applied adversely to us or our customers may have a material adverse effect on our business, cash flow, financial condition or results of operations.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">New income, sales, use or other tax laws, statutes, rules, regulations or ordinances could be enacted at any time, which could adversely affect our business operations and financial performance. Further, existing tax laws, statutes, rules, regulations or ordinances could be interpreted, changed, modified or applied adversely to us. For example, legislation informally titled the One Big Beautiful Bill Act and the Inflation Reduction Act enacted many significant changes to the U.S. tax laws. Future guidance from the Internal Revenue Service and other tax authorities with respect to new and existing legislation may affect us, and certain aspects of such legislation could be repealed or modified in future legislation. In addition, it is uncertain if and to what extent various states will conform to such legislation or any newly enacted federal tax legislation. Changes in corporate tax rates, the realization of net deferred tax assets relating to our operations, the taxation of foreign earnings and the deductibility of expenses or future reform legislation could have a material impact on the value of our deferred tax assets, could result in significant one-time charges and could increase our future U.S. tax expense.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We may be subject to additional obligations to collect and remit certain taxes, and we may be subject to tax liability for past activities, which could harm our business.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">State, local and foreign jurisdictions have differing rules and regulations governing sales, use, value added and other taxes, and these rules and regulations are subject to varying interpretations that may change over time, particularly with respect to software-as-a-service products like our solutions. Further, these jurisdictions&#8217; rules regarding tax nexus are complex and vary significantly. If one or more jurisdictions were to assert that we have failed to collect taxes for sales of our solutions, we could face the possibility of tax assessments and audits. A successful assertion that we should be collecting additional sales, use, value added or other taxes in those jurisdictions where we have not historically done so and do not accrue for such taxes could result in substantial tax liabilities and related penalties for past sales or otherwise harm our business and operating results.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our ability to use our net operating losses to offset future taxable income may be subject to certain limitations.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As of June 30, 2025, we had federal net operating loss carryforwards (&#8220;NOLs&#8221;) of approximately $50.0 million, of which $45.1 million will begin to expire in 2030, if not utilized. The remaining net operating losses of $4.9 million can be carried forward indefinitely under the Tax Cuts and Jobs Act. As of June 30, 2025, we also had state NOLs of approximately $41.7 million, which began expiring in 2025. These federal and state NOLs may be available to reduce future income subject to income taxes. In general, under Section 382 of the Internal Revenue Code of 1986, as amended (the &#8220;Code&#8221;), a corporation that undergoes an &#8220;ownership change&#8221; is subject to limitations on its ability to utilize its NOLs to offset future taxable income. Past or future changes in our stock ownership, some of which are outside of our control, may have resulted or could result in an ownership change. State NOLs generated in one state cannot be used to offset income generated in another state. In addition, at the state level, there may be periods during which the use of NOLs is suspended or otherwise limited. For example, California recently imposed limits on the usability of California state NOL carryforwards and certain state tax credits in tax years beginning after 2023 and before 2027. Such suspensions or limitations could accelerate or permanently increase state taxes owed.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Failure to protect our intellectual property rights could adversely affect our business.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">54</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our success depends, in part, on our ability to protect proprietary methods and technologies that we develop or license under patent and other intellectual property laws of the United States, as well as our brands, so that we can prevent others profiting from them. We rely on a combination of contractual and intellectual property rights, including non-disclosure agreements, patents, trade secrets, copyrights and trademarks, to establish and protect our intellectual property rights in our names, services, innovations, methodologies and related technologies. If we fail to protect our intellectual property rights adequately, our competitors might gain access to our technology and our business might be adversely affected.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As of June 30, 2025, we had 31 issued patents directed to our technologies, 23 in the United States, three in Brazil, one each in Mexico, the European Union, the United Kingdom, France and Germany. The issued patents expire on various dates from 2025 to 2034. We have patent applications pending for examination in the United States, Europe, Mexico, Canada and Brazil, but we cannot guarantee that these patent applications will be granted. We also license one other U.S. patent from one third party which expired in November 2023. The patents that we own or those that we license from others (including those that may be issued in the future) may not provide us with any competitive advantages or may be challenged by third parties.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The process of obtaining patent protection is expensive and time-consuming, and we may not be able to prosecute all necessary or desirable patent applications at a reasonable cost or in a timely manner. Even if issued, there can be no assurance that these patents will adequately protect our intellectual property, as the legal standards relating to the validity, enforceability and scope of protection of patent and other intellectual property rights are uncertain.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any patents that are issued may subsequently be invalidated or otherwise limited, allowing other companies to develop offerings that compete with ours, which could adversely affect our competitive business position, business prospects and financial condition. In addition, issuance of a patent does not guarantee that we have a right to practice the patented invention. Patent applications in the United States are typically not published until 18 months after their earliest priority date or, in some cases, not at all, and publications of discoveries in industry-related literature lag behind actual discoveries. We cannot be certain that third parties do not have blocking patents that could be used to prevent us from marketing or practicing our software or technology.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Effective patent, trademark, copyright and trade secret protection may not be available to us in every country in which our software is available. The laws of some foreign countries may not be as protective of intellectual property rights as those in the United States (in particular, some foreign jurisdictions do not permit patent protection for software), and mechanisms for enforcement of intellectual property rights may be inadequate. Additional uncertainty may result from changes to intellectual property legislation enacted in the United States, including the recent America Invents Act, or to the laws of other countries and from interpretations of the intellectual property laws of the United States and other countries by applicable courts and agencies. Accordingly, despite our efforts, we may be unable to prevent third parties from infringing upon or misappropriating our intellectual property.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We rely in part on trade secrets, proprietary know-how and other confidential information to maintain our competitive position. Although we endeavor to enter into non-disclosure agreements with our employees, licensees and others who may have access to this information, we cannot assure you that these agreements or other steps we have taken will prevent unauthorized use, disclosure or reverse engineering of our technology. Moreover, third parties may independently develop technologies or products that compete with ours, and we may be unable to prevent this competition. Third parties also may seek access to our trade secrets, proprietary know-how and other confidential information through legal measures (for example, public-records requests or subpoenas to provide information or to testify in court) and it could be expensive to defend against those requests. Disclosure of our trade secrets, proprietary know-how and other confidential information could negatively impact our business.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We might be required to spend significant resources to monitor and protect our intellectual property rights. We may initiate claims or litigation against third parties for infringement of our proprietary rights or to establish the validity of our proprietary rights. We may also engage in litigation in response to public-records requests or subpoenas that seek our intellectual property. Litigation also puts our patents at risk of being invalidated or interpreted narrowly and our patent applications at risk of not issuing. Additionally, we may provoke third parties to assert counterclaims against us. We may not prevail in any lawsuits that we initiate or other legal proceedings in which we participate, and the damages or other remedies awarded, if any, may not be commercially viable. Any litigation, whether or not resolved in our favor, could result in significant expense to us and divert the efforts of our technical and management personnel, which may adversely affect our business, operating results, financial condition and cash flows.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We may be subject to intellectual property rights claims by third parties, which are extremely costly to defend, could require us to pay significant damages and could limit our ability to use certain technologies.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">55</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Companies in the software and technology industries, including some of our current and potential competitors, own large numbers of patents, copyrights, trademarks and trade secrets and frequently enter into litigation based on allegations of infringement or other violations of intellectual property rights. In addition, many of these companies have the capability to dedicate substantially greater resources to enforce their intellectual property rights and to defend claims that may be brought against them. The litigation may involve patent holding companies or other adverse patent owners that have no relevant product revenues and against which our patents may therefore provide little or no deterrence. We may have previously received, and may in the future receive, notices that claim we have misappropriated, misused, or infringed other parties&#8217; intellectual property rights, and, to the extent we gain greater market visibility, we face a higher risk of being the subject of intellectual property infringement claims.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">There may be third-party intellectual property rights, including issued or pending patents that cover significant aspects of our technologies or business methods. Any intellectual property claims, with or without merit, could be very time-consuming, could be expensive to settle or litigate and could divert our management&#8217;s attention and other resources. These claims could also subject us to significant liability for damages, potentially including treble damages if we are found to have willfully infringed patents or copyrights. These claims could also result in our having to stop using technology found to be in violation of a third party&#8217;s rights. We might be required to seek a license for the intellectual property, which may not be available on a timely basis, on reasonable terms or at all. We also may be required to modify our products, services, internal systems or technologies. Even if a license were available, we could be required to pay significant royalties, which would increase our operating expenses. As a result, we may be required to develop alternative non-infringing technology, which could require significant effort and expense. If we cannot license or develop technology for any infringing aspect of our business, we would be forced to limit or stop sales of our software and may be unable to compete effectively. Any of these results would adversely affect our business, operating results, financial condition and cash flows.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our use of generative artificial intelligence tools may pose particular risks to our proprietary software and systems and subject us to legal liability.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We use generative AI tools in our business, including to generate code and other materials incorporated with our proprietary software and systems, and expect to use generative AI tools in the future. Generative AI tools producing content which can be indistinguishable from that generated by humans is a relatively novel development, with benefits, risks, and liabilities still unknown. Recent decisions of the U.S. Copyright Office suggest that we would not be able to claim copyright ownership in any source code, text, images, or other materials, which we develop through use of generative AI tools, and the availability of such protections in other countries is unclear. As a result, we could have no remedy if third parties reused those same materials, or similar materials also generated by AI tools.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We also face risks to any confidential or proprietary information of the Company which we may include in any prompts or inputs into any generative AI tools, as the providers of the generative AI tools may use these inputs or prompts to further train the tools. Not all providers offer an option to opt-out of such usage, and, even where we do opt-out, we cannot guarantee that the opt-out will be fully effective. In addition, we have little or no insight into the third-party content and materials used to train these generative AI tools, or the extent of the original works which remain in the outputs. As a result, we may face claims from third parties claiming infringement of their intellectual property rights, or mandatory compliance with open-source software or other license terms, with respect to software, or other materials or content we believed to be available for use, and not subject to license terms or other third-party proprietary rights. We could also be subject to claims from the providers of the generative AI tools, if we use any of the generated materials in a manner inconsistent with their terms of use. Any of these claims could result in legal proceedings and could require us to purchase a costly license, comply with the requirement of open-source software license terms, or limit or cease using the implicated software, or other materials or content unless and until we can re-engineer such software, materials, or content to avoid infringement or change the use of, or remove, the implicated third-party materials, which could reduce or eliminate the value of our technologies and services. Our use of generative AI tools may also present additional security risks because the generated source code may have been modelled from publicly available code, or otherwise not subject to all of our standard internal controls, which may make it easier for hackers and other third parties to determine how to breach our website and systems that rely on the code. Any of these risks could be difficult to eliminate or manage, and, if not addressed, could have a material adverse effect on our business, results of operations, financial condition, and future prospects.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our use of open-source software could subject us to possible litigation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A portion of our technologies incorporates open-source software, and we expect to continue to incorporate open-source software into our platform in the future. Few of the licenses applicable to open-source software have been</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">56</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">interpreted by courts, and their application to the open-source software integrated into our proprietary technology platform may be uncertain. If we fail to comply with these licenses, then pursuant to the terms of these licenses, we may be subject to certain requirements, including requirements that we make available the source code for our software that incorporates the open-source software. We cannot assure you that we have not incorporated open-source software in our software in a manner that is inconsistent with the terms of the applicable licenses or our current policies and procedures. If an author or other third party that distributes such open-source software were to allege that we had not complied with the conditions of one or more of these licenses, we could incur significant legal expenses defending against such allegations. Litigation could be costly for us to defend, have a negative effect on our operating results and financial condition or require us to devote additional research and development resources to change our technology platform.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Risks Related to the Ownership of Our Common Stock</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">We identified a material weakness in our internal control over financial reporting as of December 31, 2024, which remains unremediated as of June 30, 2025. If we are unable to develop and maintain an effective system of internal control over financial reporting, we may not be able to accurately report our financial results in a timely manner, which may adversely affect investor confidence in us and materially and adversely affect our business and operating results.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A material weakness is a deficiency, or a combination of deficiencies, in internal control over financial reporting such that there is a reasonable possibility that a material misstatement of our annual or interim financial statements will not be prevented, or detected and corrected on a timely basis. Effective internal controls are necessary for us to provide reliable financial reports and prevent fraud.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Under the supervision of and with the participation of our management, we assessed the effectiveness of our internal control over financial reporting as of December 31, 2024, using the criteria set forth by the Committee of Sponsoring Organizations of the Treadway Commission (COSO) in Internal Control &#8212; Integrated Framework (2013). Based on management&#8217;s assessment of our internal control over financial reporting, under the criteria described in the preceding sentence, management has identified a material weakness in internal control during the year ended December 31, 2024 which remained unremediated as of June 30, 2025. See Part I, Item 4, &#8220;Controls and Procedures&#8221; of this report. If we are unable to develop and maintain an effective system of internal control over financial reporting, we may not be able to accurately report our financial results in a timely manner, which may adversely affect investor confidence in us and materially and adversely affect our business and operating results.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">We cannot assure you that there will not be additional material weaknesses or significant deficiencies in our internal control over financial reporting in the future. Any failure to maintain internal control over financial reporting could severely inhibit our ability to accurately report our financial condition, results of operations or cash flows. If we are unable to conclude that our internal control over financial reporting is effective, or if our independent registered public accounting firm determines we have a material weakness in our internal control over financial reporting, investors may lose confidence in the accuracy and completeness of our financial reports, the market price of our common stock could decline, and we could be subject to sanctions or investigations by Nasdaq, the SEC or other regulatory authorities. Failure to remedy any material weakness in our internal control over financial reporting, or to implement or maintain other effective control systems required of public companies, could also restrict our future access to the capital markets.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Management has been implementing and continues to implement measures to remediate the material weakness. These remediation measures may be time consuming and costly and there is no assurance that these initiatives will ultimately have the intended effects. If we identify any new material weaknesses in the future, any such newly identified material weakness could limit our ability to prevent or detect a misstatement of our accounts or disclosures that could result in a material misstatement of our annual or interim financial statements. In such case, we may be unable to maintain compliance with securities law requirements regarding timely filing of periodic reports in addition to applicable stock exchange listing requirements, investors may lose confidence in our financial reporting and our stock price may decline as a result. We cannot assure you that the measures we have taken to date, or any measures we may take in the future, will be sufficient to avoid potential future material weaknesses.</span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our stock price is volatile and may decline regardless of our operating performance, resulting in substantial losses for investors.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The market price of our common stock is volatile. It has ranged from a low of $12.40 per share to a high of $19.07 per share from January 1, 2025 to June 30, 2025. The price of our common stock may continue to fluctuate significantly in response to numerous factors, many of which are beyond our control, including the factors listed below and other factors described in this &#8220;Risk Factors&#8221; section:</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">57</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">actual or anticipated fluctuations in our operating results;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the financial projections we may provide to the public, any changes in these projections or our failure to meet these projections;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">failure of securities analysts to initiate or maintain coverage of our company, changes in financial estimates by any securities analysts who follow our company, or our failure to meet these estimates or the expectations of investors;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">ratings changes by any securities analysts who follow our company;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">changes in the availability of federal funding to support local law enforcement efforts, or local budgets;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">announcements by us of significant technical innovations, acquisitions, strategic partnerships, joint ventures or capital commitments;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">changes in operating performance and stock market valuations of other software companies generally;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">price and volume fluctuations in the overall stock market, including as a result of trends in the economy as a whole;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">changes in our board of directors or management;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">sales of large blocks of our common stock, including sales by our executive officers, directors and significant stockholders;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">lawsuits threatened or filed against us;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">novel and unforeseen market forces and trading strategies, as well as short sales, hedging and other derivative transactions involving our capital stock;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the impact of past and potential future disruptions in access to bank deposits and lending commitments due to bank failures, and other macroeconomic pressures;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">general economic conditions in the United States and abroad; </span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">other events or factors, including those resulting from pandemics, protests against racial inequality, protests against police brutality, war, incidents of terrorism or responses to these events; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">negative publicity, including false information, regarding our solutions.</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In addition, stock markets have experienced extreme price and volume fluctuations that have affected and continue to affect the market prices of equity securities of many software companies. Stock prices of many software companies have fluctuated in a manner unrelated or disproportionate to the operating performance of those companies. Broad market and industry fluctuations, as well as general economic, political, regulatory and market conditions, may negatively impact the market price of our common stock. In the past, stockholders have instituted securities action litigation following periods of market volatility. If we were to become involved in securities litigation, it could subject us to substantial costs, divert resources and the attention of management from our business and adversely affect our business, operating results, financial condition and cash flows.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Stock repurchases could increase the volatility of the trading price of our common stock and diminish our cash reserves, and we cannot guarantee that our stock repurchase program will enhance long-term stockholder value.</span></p><p style="text-indent:4.173%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our board of directors has authorized a stock repurchase program for up to $25.0 million of our common stock, of which $12.5 million has been utilized as of June 30, 2025.  Repurchases of our shares could increase the volatility of the trading price of our stock, which could have a negative impact on the trading price of our stock. Similarly, the future announcement of the termination or suspension of the stock repurchase program, or our decision not to utilize the full authorized repurchase amount under the stock repurchase program, could result in a decrease in the trading price of our stock. In addition, the stock repurchase program could have the impact of diminishing our cash reserves, which may impact our ability to finance our growth, complete acquisitions and execute our strategic plan. There can be no assurance that any share repurchases we do elect to make will enhance stockholder value because the market price of our common stock may decline below the levels at which we repurchased our shares. Although our stock repurchase program is intended to enhance long-term stockholder value, we cannot guarantee that it will do so and short-term stock price fluctuations could reduce the effectiveness of the stock repurchase program.</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">58</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Effective December 31, 2025, we will become an accelerated filer, which increases our costs and demands on management.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Based on the market value of our common stock held by our non-affiliates as of June 30, 2025 and our annual revenues for the year ended December 31, 2024, we will no longer be considered a &#8220;non-accelerated filer&#8221; effective as of December 31, 2025. Thus, we are subject to accelerated filing deadlines as well as the requirements of Section 404(b) of the Sarbanes-Oxley Act, which require our independent registered public accounting firm to formally attest to the effectiveness of our internal control over financial reporting. We have devoted and expect to continue  to devote significant time, effort and expenses to implement and comply with Section 404(b) and the additional standards, rules and regulations that apply to us. Compliance with the additional requirements of being an accelerated filer will also increase our legal, accounting and financial compliance costs.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Further, due to the complexity and logistical difficulty of implementing the standards, rules and regulations that now apply to our business, there is an increased risk that we may be found to be in non-compliance with such standards, rules and regulations or to have additional material weaknesses in our internal controls over financial reporting in the future. Any failure to maintain effective disclosure controls and internal control over financial reporting could materially and adversely affect our business, operating results and financial condition, and could cause a decline in the trading price of our common stock.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Anti-takeover provisions in our charter documents and under Delaware law could make an acquisition of our company more difficult, limit attempts by our stockholders to replace or remove our current management and limit the market price of our common stock.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Provisions in our certificate of incorporation and bylaws may have the effect of delaying or preventing a change of control or changes in our management. Our certificate of incorporation and bylaws include provisions that:</span></p><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">establish a classified board of directors so that not all members of our board of directors are elected at one time;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">permit the board of directors to establish the number of directors and fill any vacancies and newly-created directorships;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">provide that directors may only be removed for cause;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">require super-majority voting to amend some provisions in our certificate of incorporation and bylaws;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">authorize the issuance of &#8220;blank check&#8221; preferred stock that our board of directors could use to implement a stockholder rights plan;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">eliminate the ability of our stockholders to call special meetings of stockholders;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">prohibit stockholder action by written consent, which requires all stockholder actions to be taken at a meeting of our stockholders;</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">provide that the board of directors is expressly authorized to make, alter or repeal our bylaws; and</span></div></div><div class="item-list-element-wrapper" style="margin-left:4.528%;display:flex;margin-top:6pt;justify-content:flex-start;align-items:baseline;margin-bottom:0;min-width:4.537%;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:4.7521786492374725%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">&#8226;</span><div style="display:inline;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">establish advance notice requirements for nominations for election to our board of directors or for proposing matters that can be acted upon by stockholders at annual stockholder meetings.</span></div></div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In addition, we are governed by the provisions of Section 203 of the Delaware General Corporation Law, which generally prohibits stockholders owning 15% or more of our outstanding voting stock from merging or otherwise combining with us for a period of three years following the date on which the stockholder became a 15% stockholder without the consent of our board of directors. These provisions may frustrate or prevent any attempts by our stockholders to replace or remove our current management by making it more difficult for stockholders to replace members of our board of directors, which is responsible for appointing the members of our management, and otherwise discourage management takeover attempts.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Our certificate of incorporation contains exclusive forum provisions that could limit our stockholders&#8217; ability to obtain a favorable judicial forum for disputes with us.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Pursuant to our certificate of incorporation, unless we consent in writing to the selection of an alternative forum, the Court of Chancery of the State of Delaware is the sole and exclusive forum for (1) any derivative action or proceeding brought on our behalf, (2) any action asserting a claim of breach of a fiduciary duty owed by any of our directors, officers or other employees to us or our stockholders, (3) any action asserting a claim arising pursuant to any provision of the</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">59</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:0.81in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Delaware General Corporation Law, our certificate of incorporation or our bylaws or (4) any action asserting a claim governed by the internal affairs doctrine. Our certificate of incorporation further provides that any person or entity purchasing or otherwise acquiring any interest in shares of our common stock is deemed to have notice of and consented to the foregoing provision.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Our certificate of incorporation further provides that the federal district courts of the United States of America will be the exclusive forum for resolving any complaint asserting a cause of action arising under the Securities Act. These forum selection clauses in our certificate of incorporation may limit our stockholders&#8217; ability to obtain a favorable judicial forum for disputes with us. While the Delaware courts have determined that such choice of forum provisions are facially valid and several state trial courts have enforced such provisions and required that suits asserting Securities Act claims be filed in federal court, there is no guarantee that courts of appeal will affirm the enforceability of such provisions and a stockholder may nevertheless seek to bring a claim in a venue other than those designated in the exclusive forum provisions. In such instance, we would expect to vigorously assert the validity and enforceability of the exclusive forum provisions of our certificate of incorporation. This may require significant additional costs associated with resolving such action in other jurisdictions and there can be no assurance that the provisions will be enforced by a court in those other jurisdictions. If a court were to find either exclusive forum provision in our certificate of incorporation to be inapplicable or unenforceable in an action, we may incur further significant additional costs associated with litigating Securities Act claims in state court, or both state and federal court, which could seriously harm our business, financial condition, results of operations, and prospects.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:0.97in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">60</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_2_unregistered_2"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Item 2. Unregistered Sales of Eq</span><span id="item_2_unregistered"></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">uity Securities, Use of Proceeds and Issuer Purchases of Equity Securities</span></p><p style="margin-left:4.533%;text-indent:-3.618%;padding-left:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(a)  Unregistered Sales of Equity Securities</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">None.</span></p><p style="margin-left:4.533%;text-indent:-3.618%;padding-left:3.333%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(b) Use of Proceeds</span></p><p style="margin-left:4.533%;text-indent:-3.618%;padding-left:3.333%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">None.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;text-indent:-3.618%;padding-left:3.333%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(c)  Issuer Purchases of Equity Securities</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table sets forth for the indicated period, share repurchases of our common stock:</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:34.386%;box-sizing:content-box;"/>
     <td style="width:1.259%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:13.155%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.719%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:12.675%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.259%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:13.155%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:1.719%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:12.675%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Total Number of<br/>Shares<br/>Purchased</span><span style="color:#000000;top:-3.752pt;white-space:pre-wrap;font-weight:bold;font-size:5.36pt;position:relative;font-kerning:none;min-width:fit-content;">(1)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Average Price<br/>Paid per Share</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Total Number of<br/>Shares Purchased<br/>as part of Publicly<br/>Announced<br/>Program</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Dollar Value of<br/>Shares that May<br/>Yet Be Purchased<br/>Under the<br/>Program<br/>(in thousands)</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;April 1, 2025 - April 30, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#8212;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,919</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;May 1, 2025 - May 31, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,193</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14.78</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,193</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,620</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;June 1, 2025 - June 30, 2025</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,377</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14.94</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,377</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,450</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
     <td style="padding-top:0.01in;text-indent:10pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:1.853%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31,570</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14.84</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31,570</span></p></td>
     <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
     <td colspan="16" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(1)	All repurchases were made as part of our publicly announced stock repurchase program. In November 2022, we announced that our board of directors approved a stock repurchase program, under which we were authorized to repurchase up to $25 million of our common stock. The repurchase program has no expiration date and may be modified, suspended or discontinued at any time.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;" id="item_6_exhibits"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Item 6. E</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">xhibits</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">61</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="exhibit_index"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Exhibit</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> Index</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:8.069%;box-sizing:content-box;"/>
     <td style="width:1.009%;box-sizing:content-box;"/>
     <td style="width:35.889%;box-sizing:content-box;"/>
     <td style="width:1.009%;box-sizing:content-box;"/>
     <td style="width:9.461%;box-sizing:content-box;"/>
     <td style="width:1.009%;box-sizing:content-box;"/>
     <td style="width:10.974%;box-sizing:content-box;"/>
     <td style="width:1.009%;box-sizing:content-box;"/>
     <td style="width:7.928%;box-sizing:content-box;"/>
     <td style="width:1.009%;box-sizing:content-box;"/>
     <td style="width:12.83%;box-sizing:content-box;"/>
     <td style="width:1.009%;box-sizing:content-box;"/>
     <td style="width:8.796%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Exhibit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Exhibit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td colspan="7" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Incorporated by Reference</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Filed</span></p></td>
    </tr>
    <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Number</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Description</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Form</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">File No.</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Exhibit</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Filing Date</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.25pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Herewith</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.1</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="https://www.sec.gov/Archives/edgar/data/1351636/000095017023012328/ssti-ex3_1.htm" style="-sec-extract:exhibit;"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Amended and Restated Certificate of Incorporation</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8-K</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">001-38107</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.1</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">April 11, 2023</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.2</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="https://www.sec.gov/Archives/edgar/data/1351636/000095017023041419/ssti-ex3_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Certificate of Change of Registered Agent</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10-Q</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">001-38107</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.2</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">August 10, 2023</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.3</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="https://www.sec.gov/Archives/edgar/data/1351636/000095017023062137/ssti-ex3_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Amended and Restated Bylaws</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8-K</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">001-38107</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.1</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">November 9, 2023</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31.1</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="ssti-ex31_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Certification of Principal Executive Officer Pursuant to Rules 13a-14(a) and 15d-14(a) under the Securities Exchange Act of 1934, as Adopted Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">X</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31.2</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="ssti-ex31_2.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Certification of Principal Financial Officer Pursuant to Rules 13a-14(a) and 15d-14(a) under the Securities Exchange Act of 1934, as Adopted Pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">X</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">32.1*</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><a href="ssti-ex32_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline solid;font-kerning:none;min-width:fit-content;">Certification of Principal Executive Officer and Principal Financial Officer Pursuant to 18 U.S.C. Section 1350, as Adopted Pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.</span></a></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">X</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;101.INS</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Inline XBRL Instance Document (the instance document does not appear in the Interactive Data File because its XBRL tags are embedded within the Inline XBRL document).</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">X</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;101.SCH</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Inline XBRL Taxonomy Extension Schema with Embedded Linkbase Documents</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">X</span></p></td>
    </tr>
    <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">104</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:right;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cover Page formatted as Inline XBRL and contained in Exhibit 101</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0.01in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">X</span></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:6pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:2pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">*       Furnished herewith and not deemed to be &#8220;filed&#8221; for purposes of Section 18 of the Exchange Act, and shall not be deemed to be incorporated by reference into any filing under the Securities Act, or the Exchange Act (whether made before or after the date of the Form 10-Q), irrespective of any general incorporation language contained in such filing.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">62</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="padding-top:0.5in;z-index:2;min-height:1in;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;margin-left:0;margin-right:0;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;" id="signatures"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SIGNAT</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">URES</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:10pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">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.</span></p><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
   <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
    <tr style="visibility:collapse;">
     <td style="width:59.38%;box-sizing:content-box;"/>
     <td style="width:3.62%;box-sizing:content-box;"/>
     <td style="width:1%;box-sizing:content-box;"/>
     <td style="width:36%;box-sizing:content-box;"/>
    </tr>
    <tr style="height:12.25pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td colspan="3" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">SOUNDTHINKING, INC.</span></p></td>
    </tr>
    <tr style="height:15.85pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="height:12.25pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Date: August 13, 2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.75pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Ralph A. Clark</span></p></td>
    </tr>
    <tr style="height:12.25pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0.1in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Ralph A. Clark</span></p></td>
    </tr>
    <tr style="height:13.7pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0.1in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;font-kerning:none;min-width:fit-content;">President and Chief Executive Officer</span><span style="color:#000000;white-space:pre-wrap;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="height:15.1pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:12pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
    </tr>
    <tr style="height:12.25pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Date: August 13, 2025</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">By:</span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.75pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Alan R. Stewart</span></p></td>
    </tr>
    <tr style="height:13.7pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0.1in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Alan R. Stewart</span></p></td>
    </tr>
    <tr style="height:12.25pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0.1in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-style:italic;font-kerning:none;min-width:fit-content;">Chief Financial Officer</span></p></td>
    </tr>
   </table><p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;padding-bottom:0.5in;min-height:1in;justify-content:flex-end;position:relative;box-sizing:border-box;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;margin-left:0;margin-right:0;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">63</span></p></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
 </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>2
<FILENAME>ssti-ex31_1.htm
<DESCRIPTION>EX-31.1
<TEXT>
<html>
 <head>
  <title>EX-31.1</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="z-index:2;min-height:1in;position:relative;"></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Exhibit 31.1</font></p><p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">CERTIFICATION OF PERIODIC REPORT UNDER SECTION 302 OF</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">THE SARBANES-OXLEY ACT OF 2002</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">I, Ralph A. Clark, certify that:</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">1.	I have reviewed this Form 10-Q of SoundThinking, Inc.;</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">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;</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">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;</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">4.	The registrant&#x2019;s other certifying officer 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:</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(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;</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(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;</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(c)	Evaluated the effectiveness of the registrant&#x2019;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</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(d)	Disclosed in this report any change in the registrant&#x2019;s internal control over financial reporting that occurred during the registrant&#x2019;s most recent fiscal quarter (the registrant&#x2019;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#x2019;s internal control over financial reporting; and</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">5.	The registrant&#x2019;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#x2019;s auditors and the audit committee of the registrant&#x2019;s board of directors (or persons performing the equivalent functions):</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(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&#x2019;s ability to record, process, summarize and report financial information; and</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(b)	Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#x2019;s internal control over financial reporting.</font></p>
   <table style="margin-left:0.324%;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:48.72%;box-sizing:content-box;"></td>
     <td style="width:51.28%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.006in;border-bottom:0.75pt solid #ffffff;padding-right:0.024in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">August 13, 2025</font></p></td>
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.026in;border-bottom:0.75pt solid #000000;padding-right:0.024in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Ralph A. Clark</font><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </font></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.024in;padding-right:0.024in;"><p style="font-size:1pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.024in;padding-right:0.024in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Ralph A. Clark</font></p></td>
    </tr>
   </table></div>
  <div style="z-index:2;flex-direction:column;display:flex;min-height:1in;justify-content:flex-end;position:relative;"></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="z-index:2;min-height:1in;position:relative;"></div>
  <div class="main-content-container" style="z-index:5;position:relative;">
   <table style="margin-left:0.324%;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:48.72%;box-sizing:content-box;"></td>
     <td style="width:51.28%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.024in;padding-right:0.024in;"><p style="font-size:1pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.024in;padding-right:0.024in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">President and Chief Executive Officer</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(Principal Executive Officer)</font></p></td>
    </tr>
   </table></div>
  <div style="z-index:2;flex-direction:column;display:flex;min-height:1in;justify-content:flex-end;position:relative;"></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>3
<FILENAME>ssti-ex31_2.htm
<DESCRIPTION>EX-31.2
<TEXT>
<html>
 <head>
  <title>EX-31.2</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="z-index:2;min-height:1in;position:relative;"></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Exhibit 31.2</font></p><p style="text-indent:6.667%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">CERTIFICATION OF PERIODIC REPORT UNDER SECTION 302 OF</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">THE SARBANES-OXLEY ACT OF 2002</font></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">I, Alan R. Stewart, certify that:</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">1.	I have reviewed this Form 10-Q of SoundThinking, Inc.;</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">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;</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">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;</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">4.	The registrant&#x2019;s other certifying officer 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:</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(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;</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(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;</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(c)	Evaluated the effectiveness of the registrant&#x2019;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</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(d)	Disclosed in this report any change in the registrant&#x2019;s internal control over financial reporting that occurred during the registrant&#x2019;s most recent fiscal quarter (the registrant&#x2019;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#x2019;s internal control over financial reporting; and</font></p><p style="text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">5.	The registrant&#x2019;s other certifying officer and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#x2019;s auditors and the audit committee of the registrant&#x2019;s board of directors (or persons performing the equivalent functions):</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(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&#x2019;s ability to record, process, summarize and report financial information; and</font></p><p style="margin-left:6.667%;text-indent:-7.143%;padding-left:6.667%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">(b)	Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#x2019;s internal control over financial reporting.</font></p>
   <table style="margin-left:0.324%;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:48.72%;box-sizing:content-box;"></td>
     <td style="width:51.28%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.006in;border-bottom:0.75pt solid #ffffff;padding-right:0.024in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">August 13, 2025</font></p></td>
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.026in;border-bottom:0.75pt solid #000000;padding-right:0.024in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/ Alan R. Stewart</font></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.024in;padding-right:0.024in;"><p style="font-size:1pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.024in;padding-right:0.024in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Alan R. Stewart</font></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.024in;padding-right:0.024in;"><p style="font-size:1pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0.024in;padding-left:0.024in;vertical-align:top;padding-bottom:0.024in;padding-right:0.024in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Chief Financial Officer</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(Principal Financial and Accounting Officer)</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;min-height:1in;justify-content:flex-end;position:relative;"></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>4
<FILENAME>ssti-ex32_1.htm
<DESCRIPTION>EX-32.1
<TEXT>
<html>
 <head>
  <title>EX-32.1</title>
 </head>
 <body style="padding:8px;margin:auto!important;z-index:0;-webkit-text-size-adjust:100%;position:relative;">
  <div style="z-index:2;min-height:1in;position:relative;"></div>
  <div class="main-content-container" style="z-index:5;position:relative;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Exhibit 32.1</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">CERTIFICATION PURSUANT TO</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Pursuant to the requirement set forth in Rule 13a-14(b) of the Securities Exchange Act of 1934, as amended, (the &#x201c;Exchange Act&#x201d;) and Section 1350 of Chapter 63 of Title 18 of the United States Code (18 U.S.C. &#167;1350), Ralph A. Clark, President and Chief Executive Officer of SoundThinking, Inc. (the &#x201c;Company&#x201d;), and Alan R. Stewart, Chief Financial Officer of the Company, each hereby certifies that, to the best of his knowledge:</font></p><div class="item-list-element-wrapper" style="display:flex;margin-top:0;justify-content:flex-start;align-items:baseline;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:6.667%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(1)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company&#x2019;s Quarterly Report on Form 10-Q for the period ended June 30, 2025 to which this Certification is attached as Exhibit 32.1 (the &#x201c;Periodic Report&#x201d;), fully complies with the requirements of Section 13(a) or Section 15(d) of the Exchange Act; and</font></div></div><div class="item-list-element-wrapper" style="display:flex;margin-top:0;justify-content:flex-start;align-items:baseline;margin-bottom:12pt;min-width:6.667%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:6.667%;word-break:keep-all;display:inline-flex;justify-content:flex-start;">(2)</font><div style="display:inline;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The information contained in the Periodic Report fairly presents, in all material respects, the financial condition and results of operations of the Company. </font></div></div><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Date: August 13, 2025</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><font style="white-space:pre-wrap;font-size:11pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p>
   <table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;">
    <tr style="visibility:collapse;">
     <td style="width:2.52%;box-sizing:content-box;"></td>
     <td style="width:35.94%;box-sizing:content-box;"></td>
     <td style="width:23.1%;box-sizing:content-box;"></td>
     <td style="width:2.56%;box-sizing:content-box;"></td>
     <td style="width:35.88%;box-sizing:content-box;"></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Ralph A. Clark</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">/s/</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Alan R. Stewart</font></p></td>
    </tr>
    <tr style="word-break:break-word;white-space:pre-wrap;">
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Ralph A. Clark</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Alan R. Stewart</font></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">President and Chief Executive Officer</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Chief Financial Officer</font></p></td>
    </tr>
    <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(Principal Executive Officer)</font></p></td>
     <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</font></p></td>
     <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:left;"><font style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(Principal Financial and Accounting Officer)</font></p></td>
    </tr>
   </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">This certification accompanies the Form 10-Q to which it relates, is not deemed filed with the Securities and Exchange Commission and is not to be incorporated by reference into any filing of SoundThinking, Inc. under the Securities Act of 1933, as amended, or the Securities Exchange Act of 1934, as amended (whether made before or after the date of the Form 10-Q), irrespective of any general incorporation language contained in such filing.</font></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:11pt;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"> </font></p></div>
  <div style="z-index:2;flex-direction:column;display:flex;min-height:1in;justify-content:flex-end;position:relative;"></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>5
<FILENAME>ssti-20250630.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA WITH EMBEDDED LINKBASES DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!-- DFIN New ActiveDisclosure (SM) XBRL Schema Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2025-08-13T16:27:15.6266+00:00 -->
<!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<xsd:schema targetNamespace="http://www.soundthinking.com/20250630" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2024-01-31" xmlns:country="http://xbrl.sec.gov/country/2025" xmlns:ssti="http://www.soundthinking.com/20250630" xmlns:ecd-sub="http://xbrl.sec.gov/ecd-sub/2025" xmlns:ecd="http://xbrl.sec.gov/ecd/2025" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:dei="http://xbrl.sec.gov/dei/2025" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:srt="http://fasb.org/srt/2025" xmlns:us-gaap="http://fasb.org/us-gaap/2025" xmlns:xlink="http://www.w3.org/1999/xlink">
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/instance"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/linkbase"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" namespace="http://xbrl.org/2005/xbrldt"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd" namespace="http://xbrl.sec.gov/ecd/2025"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd" namespace="http://fasb.org/us-gaap/2025"/>
  <xsd:import schemaLocation="https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd" namespace="http://xbrl.org/2020/extensible-enumerations-2.0"/>
  <xsd:import schemaLocation="https://www.xbrl.org/dtr/type/2024-01-31/types.xsd" namespace="http://www.xbrl.org/dtr/type/2024-01-31"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/country/2025/country-2025.xsd" namespace="http://xbrl.sec.gov/country/2025"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd" namespace="http://fasb.org/srt/2025"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/ecd/2025/ecd-sub-2025.xsd" namespace="http://xbrl.sec.gov/ecd-sub/2025"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/dei/2025/dei-2025.xsd" namespace="http://xbrl.sec.gov/dei/2025"/>
  <xsd:import schemaLocation="https://www.xbrl.org/2023/calculation-1.1.xsd" namespace="https://xbrl.org/2023/calculation-1.1"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" id="Role_DocumentDocumentAndEntityInformation">
        <link:definition>75000 - Document - Document and Entity Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited" id="Role_StatementCondensedConsolidatedBalanceSheetsUnaudited">
        <link:definition>75010 - Statement - Condensed Consolidated Balance Sheets (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" id="StatementCondensedConsolidatedBalanceSheetsParenthetical">
        <link:definition>75020 - Statement - Condensed Consolidated Balance Sheets (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited" id="Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited">
        <link:definition>75030 - Statement - Condensed Consolidated Statements of Operations (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" id="StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited">
        <link:definition>75040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited" id="Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited">
        <link:definition>75050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" id="Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited">
        <link:definition>75060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusiness" id="Role_DisclosureOrganizationAndDescriptionOfBusiness">
        <link:definition>995455 - Disclosure - Organization and Description of Business</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPolicies" id="Role_DisclosureSummaryOfSignificantAccountingPolicies">
        <link:definition>995465 - Disclosure - Summary of Significant Accounting Policies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosures" id="Role_DisclosureRevenueRelatedDisclosures">
        <link:definition>995475 - Disclosure - Revenue Related Disclosures</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitions1" id="DisclosureAcquisitions1">
        <link:definition>995485 - Disclosure - Acquisitions</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurements" id="Role_DisclosureFairValueMeasurements">
        <link:definition>995495 - Disclosure - Fair Value Measurements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwill" id="DisclosureGoodwill">
        <link:definition>995505 - Disclosure - Goodwill</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNet1" id="DisclosureIntangibleAssetsNet1">
        <link:definition>995515 - Disclosure - Intangible Assets, Net</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts" id="Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts">
        <link:definition>995525 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactions" id="Role_DisclosureRelatedPartyTransactions">
        <link:definition>995535 - Disclosure - Related Party Transactions</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuring" id="DisclosureRestructuring">
        <link:definition>995545 - Disclosure - Restructuring</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgram" id="DisclosureStockRepurchaseProgram">
        <link:definition>995555 - Disclosure - Stock Repurchase Program</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShare" id="DisclosureNetIncomeLossPerShare">
        <link:definition>995565 - Disclosure - Net Income (Loss) per Share</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlans" id="Role_DisclosureEquityIncentivePlans">
        <link:definition>995575 - Disclosure - Equity Incentive Plans</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangements1" id="DisclosureFinancingArrangements1">
        <link:definition>995585 - Disclosure - Financing Arrangements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" id="Role_DisclosureCommitmentsAndContingencies">
        <link:definition>995595 - Disclosure - Commitments and Contingencies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReporting" id="DisclosureSegmentReporting">
        <link:definition>995605 - Disclosure - Segment Reporting</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies" id="Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies">
        <link:definition>995615 - Disclosure - Summary of Significant Accounting Policies (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresTables" id="DisclosureRevenueRelatedDisclosuresTables">
        <link:definition>995625 - Disclosure - Revenue Related Disclosures (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables" id="DisclosureAcquisitionsTables">
        <link:definition>995635 - Disclosure - Acquisitions (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" id="Role_DisclosureFairValueMeasurementsTables">
        <link:definition>995645 - Disclosure - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillTables" id="DisclosureGoodwillTables">
        <link:definition>995655 - Disclosure - Goodwill (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetTables" id="DisclosureIntangibleAssetsNetTables">
        <link:definition>995665 - Disclosure - Intangible Assets, Net (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables" id="Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables">
        <link:definition>995675 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables" id="DisclosureNetIncomeLossPerShareTables">
        <link:definition>995685 - Disclosure - Net Income (Loss) per Share (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansTables" id="Role_DisclosureEquityIncentivePlansTables">
        <link:definition>995695 - Disclosure - Equity Incentive Plans (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails" id="Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails">
        <link:definition>995705 - Disclosure - Organization and Description of Business - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" id="Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails">
        <link:definition>995715 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails" id="DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails">
        <link:definition>995725 - Disclosure - Revenue Related Disclosures - Schedule of Changes in Deferred Revenue (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails" id="DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails">
        <link:definition>995735 - Disclosure - Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details" id="DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details">
        <link:definition>995745 - Disclosure - Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues 1 (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails" id="Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails">
        <link:definition>995755 - Disclosure - Revenue Related Disclosures - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails" id="DisclosureAcquisitionsAdditionalInformationDetails">
        <link:definition>995765 - Disclosure - Acquisitions - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails" id="DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails">
        <link:definition>995775 - Disclosure - Acquisitions - Summary of Assignment of Fair Value to Identified Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" id="Role_DisclosureFairValueMeasurementsAdditionalInformationDetails">
        <link:definition>995785 - Disclosure - Fair Value Measurements - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails" id="DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails">
        <link:definition>995795 - Disclosure - Fair Value Measurements - Summary of Changes in Fair Value of Contingent Consideration Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails" id="DisclosureGoodwillScheduleOfChangesInGoodwillDetails">
        <link:definition>995805 - Disclosure - Goodwill - Schedule of Changes in Goodwill (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails" id="DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails">
        <link:definition>995815 - Disclosure - Intangible Assets, Net - Schedule of Intangible Assets Net (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetAdditionalInformationDetails" id="DisclosureIntangibleAssetsNetAdditionalInformationDetails">
        <link:definition>995825 - Disclosure - Intangible Assets, Net - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails" id="DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails">
        <link:definition>995835 - Disclosure - Intangible Assets, Net - Schedule of Future Intangible Asset Amortization (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails" id="DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails">
        <link:definition>995845 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accounts Receivable and Contract Assets, Net (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails" id="Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails">
        <link:definition>995855 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Prepaid Expenses and Other Current Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails" id="DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails">
        <link:definition>995865 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Other Long-term Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" id="Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails">
        <link:definition>995875 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accrued Expenses and Other Current Liabilities (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails" id="Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails">
        <link:definition>995885 - Disclosure - Related Party Transactions - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails" id="DisclosureRestructuringAdditionalInformationDetails">
        <link:definition>995895 - Disclosure - Restructuring - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails" id="DisclosureStockRepurchaseProgramAdditionalInformationDetails">
        <link:definition>995905 - Disclosure - Stock Repurchase Program - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails" id="DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails">
        <link:definition>995915 - Disclosure - Net Income (Loss) per Share - Summary of Computation of Basic and Diluted Net Income (Loss) per Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails" id="DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails">
        <link:definition>995925 - Disclosure - Net Income (Loss) per Share - Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Income (Loss) per Share (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareParentheticalDe" id="DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareParentheticalDe">
        <link:definition>995935 - Disclosure - Net Income (Loss) per Share - Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Income (Loss) per Share (Parenthetical) (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails" id="Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails">
        <link:definition>995945 - Disclosure - Equity Incentive Plans - Schedule of Stock Option Activity (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails" id="Role_DisclosureEquityIncentivePlansAdditionalInformationDetails">
        <link:definition>995955 - Disclosure - Equity Incentive Plans - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails" id="DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails">
        <link:definition>995965 - Disclosure - Equity Incentive Plans - Schedule of Unvested Restricted Stock Units Awards Activity - (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails" id="Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails">
        <link:definition>995975 - Disclosure - Equity Incentive Plans - Schedule of Stock-Based Compensation Expense Recorded in Condensed Consolidated Statements of Operations (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails" id="DisclosureFinancingArrangementsAdditionalInformationDetails">
        <link:definition>995985 - Disclosure - Financing Arrangements - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" id="DisclosureCommitmentsAndContingenciesAdditionalInformationDetails">
        <link:definition>995995 - Disclosure - Commitments and Contingencies - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReportingAdditionalInformationDetails" id="DisclosureSegmentReportingAdditionalInformationDetails">
        <link:definition>996005 - Disclosure - Segment Reporting - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" id="DisclosureSubsequentEventsAdditionalInformationDetails">
        <link:definition>996015 - Disclosure - Subsequent Events - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbase id="lnk">
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="http://www.esma.europa.eu/xbrl/esef/arcrole/wider-narrower" xlink:href="http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd#wider-narrower" xlink:type="simple"/>
        <link:arcroleRef arcroleURI="https://xbrl.org/2023/arcrole/summation-item" xlink:href="https://www.xbrl.org/2023/calculation-1.1.xsd#summation-item" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited" xlink:href="ssti-20250630.xsd#Role_StatementCondensedConsolidatedBalanceSheetsUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited" xlink:href="ssti-20250630.xsd#Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" xlink:href="ssti-20250630.xsd#StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:href="ssti-20250630.xsd#Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails" xlink:href="ssti-20250630.xsd#DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails" xlink:href="ssti-20250630.xsd#DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails" xlink:href="ssti-20250630.xsd#DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails" xlink:href="ssti-20250630.xsd#DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails" xlink:href="ssti-20250630.xsd#DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited" xlink:href="ssti-20250630.xsd#Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables" xlink:href="ssti-20250630.xsd#DisclosureAcquisitionsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails" xlink:href="ssti-20250630.xsd#DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails" xlink:href="ssti-20250630.xsd#DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details" xlink:href="ssti-20250630.xsd#DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#DisclosureAcquisitionsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails" xlink:href="ssti-20250630.xsd#DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails" xlink:href="ssti-20250630.xsd#DisclosureGoodwillScheduleOfChangesInGoodwillDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#DisclosureRestructuringAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#DisclosureStockRepurchaseProgramAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails" xlink:href="ssti-20250630.xsd#DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureEquityIncentivePlansAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails" xlink:href="ssti-20250630.xsd#DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:href="ssti-20250630.xsd#Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-roles-2025.xsd#eedm" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:href="ssti-20250630.xsd#Role_DocumentDocumentAndEntityInformation" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" xlink:href="ssti-20250630.xsd#StatementCondensedConsolidatedBalanceSheetsParenthetical" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusiness" xlink:href="ssti-20250630.xsd#Role_DisclosureOrganizationAndDescriptionOfBusiness" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPolicies" xlink:href="ssti-20250630.xsd#Role_DisclosureSummaryOfSignificantAccountingPolicies" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosures" xlink:href="ssti-20250630.xsd#Role_DisclosureRevenueRelatedDisclosures" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitions1" xlink:href="ssti-20250630.xsd#DisclosureAcquisitions1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurements" xlink:href="ssti-20250630.xsd#Role_DisclosureFairValueMeasurements" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwill" xlink:href="ssti-20250630.xsd#DisclosureGoodwill" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNet1" xlink:href="ssti-20250630.xsd#DisclosureIntangibleAssetsNet1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts" xlink:href="ssti-20250630.xsd#Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactions" xlink:href="ssti-20250630.xsd#Role_DisclosureRelatedPartyTransactions" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuring" xlink:href="ssti-20250630.xsd#DisclosureRestructuring" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgram" xlink:href="ssti-20250630.xsd#DisclosureStockRepurchaseProgram" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShare" xlink:href="ssti-20250630.xsd#DisclosureNetIncomeLossPerShare" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlans" xlink:href="ssti-20250630.xsd#Role_DisclosureEquityIncentivePlans" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangements1" xlink:href="ssti-20250630.xsd#DisclosureFinancingArrangements1" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" xlink:href="ssti-20250630.xsd#Role_DisclosureCommitmentsAndContingencies" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReporting" xlink:href="ssti-20250630.xsd#DisclosureSegmentReporting" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies" xlink:href="ssti-20250630.xsd#Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresTables" xlink:href="ssti-20250630.xsd#DisclosureRevenueRelatedDisclosuresTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" xlink:href="ssti-20250630.xsd#Role_DisclosureFairValueMeasurementsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillTables" xlink:href="ssti-20250630.xsd#DisclosureGoodwillTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetTables" xlink:href="ssti-20250630.xsd#DisclosureIntangibleAssetsNetTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables" xlink:href="ssti-20250630.xsd#Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables" xlink:href="ssti-20250630.xsd#DisclosureNetIncomeLossPerShareTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansTables" xlink:href="ssti-20250630.xsd#Role_DisclosureEquityIncentivePlansTables" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#DisclosureIntangibleAssetsNetAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails" xlink:href="ssti-20250630.xsd#DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareParentheticalDe" xlink:href="ssti-20250630.xsd#DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareParentheticalDe" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReportingAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#DisclosureSegmentReportingAdditionalInformationDetails" xlink:type="simple"/>
        <link:roleRef roleURI="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" xlink:href="ssti-20250630.xsd#DisclosureSubsequentEventsAdditionalInformationDetails" xlink:type="simple"/>
        <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:title="labelLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfDiscountedCashFlows" xlink:label="ssti_PercentageOfDiscountedCashFlows"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedEmployeeBenefitsCurrent" xlink:label="us-gaap_AccruedEmployeeBenefitsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionOneMember" xlink:label="ssti_DomesticFinancialInstitutionOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfRevenueVolatility" xlink:label="ssti_PercentageOfRevenueVolatility"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNoncurrentLiabilitiesMember" xlink:label="us-gaap_OtherNoncurrentLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock" xlink:label="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" xlink:label="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfAgencies" xlink:label="ssti_NumberOfAgencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RecognitionFromNewBillingsOfDeferredRevenueMember" xlink:label="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditConcentrationRiskMember" xlink:label="us-gaap_CreditConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CommonStockFairMarketValuePercentage" xlink:label="ssti_CommonStockFairMarketValuePercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1" xlink:label="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessAndNatureOfOperationsLineItems" xlink:label="ssti_BusinessAndNatureOfOperationsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TechnologicSolutionsLlcMember" xlink:label="ssti_TechnologicSolutionsLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EmployeeStockPurchasePlanOfferingPeriod" xlink:label="ssti_EmployeeStockPurchasePlanOfferingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ContractWithCustomerLiabilityForeignCurrencyImpact" xlink:label="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ShareRepurchaseProgramAxis" xlink:label="srt_ShareRepurchaseProgramAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrentDisclosureAbstract" xlink:label="us-gaap_OtherAssetsNoncurrentDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:label="us-gaap_InterestIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FeaturesOfConvertiblePreferredStockAbstract" xlink:label="us-gaap_FeaturesOfConvertiblePreferredStockAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountsReceivableAndContractAssetCurrent" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ShareRepurchaseProgramDomain" xlink:label="srt_ShareRepurchaseProgramDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_UY" xlink:label="country_UY"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:label="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SoundthinkingMember" xlink:label="ssti_SoundthinkingMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceInitialPublicOffering" xlink:label="us-gaap_ProceedsFromIssuanceInitialPublicOffering"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesAndExciseTaxPayableCurrent" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ProfessionalSoftwareDevelopmentServicesMember" xlink:label="ssti_ProfessionalSoftwareDevelopmentServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_ZA" xlink:label="country_ZA"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription" xlink:label="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LineOfCreditWeightedAverageInterestRate" xlink:label="ssti_LineOfCreditWeightedAverageInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments" xlink:label="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyAbstract" xlink:label="us-gaap_LossContingencyAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement" xlink:label="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenueAbstract" xlink:label="us-gaap_CostOfRevenueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringReserveCurrent" xlink:label="us-gaap_RestructuringReserveCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MoneyMarketFundsAtCarryingValue" xlink:label="us-gaap_MoneyMarketFundsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IndemnificationGuaranteeMember" xlink:label="us-gaap_IndemnificationGuaranteeMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EscrowClaimReceivable" xlink:label="ssti_EscrowClaimReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherPrepaidExpenseCurrent" xlink:label="us-gaap_OtherPrepaidExpenseCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNoncurrentLiabilitiesTableTextBlock" xlink:label="us-gaap_OtherNoncurrentLiabilitiesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UnvestedPerformanceStockUnitsMember" xlink:label="ssti_UnvestedPerformanceStockUnitsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_StockRepurchaseProgramMember" xlink:label="ssti_StockRepurchaseProgramMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RecognitionFromBeginningDeferredRevenueBalanceMember" xlink:label="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress" xlink:label="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAxis" xlink:label="us-gaap_RelatedPartyTransactionAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessAndNatureOfOperationsTable" xlink:label="ssti_BusinessAndNatureOfOperationsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset" xlink:label="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock" xlink:label="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:label="us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:label="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="us-gaap_RelatedPartyTransactionsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract" xlink:label="us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfSubsidiary" xlink:label="ssti_NumberOfSubsidiary"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:label="us-gaap_RelatedPartyTransactionsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccruedLiabilitiesAndOtherLiabilitiesMember" xlink:label="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountingPoliciesLineItems" xlink:label="ssti_AccountingPoliciesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountingPoliciesTable" xlink:label="ssti_AccountingPoliciesTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PatentsAndIntellectualPropertyMember" xlink:label="ssti_PatentsAndIntellectualPropertyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_US" xlink:label="country_US"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" xlink:label="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCosts" xlink:label="us-gaap_DeferredCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure" xlink:label="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FairValueAdjustmentOfContingentConsideration" xlink:label="ssti_FairValueAdjustmentOfContingentConsideration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfCitiesInWhichEntityOperates" xlink:label="ssti_NumberOfCitiesInWhichEntityOperates"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable" xlink:label="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationConsiderationPaidInKind" xlink:label="ssti_BusinessCombinationConsiderationPaidInKind"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashFDICInsuredAmount" xlink:label="us-gaap_CashFDICInsuredAmount"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerDurationDomain" xlink:label="us-gaap_ContractWithCustomerDurationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SubscriptionMaintenanceAndSupportServicesMember" xlink:label="ssti_SubscriptionMaintenanceAndSupportServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock" xlink:label="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EscrowDepositDisbursementsRelatedToAcquisition" xlink:label="ssti_EscrowDepositDisbursementsRelatedToAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SouthAmericaMember" xlink:label="srt_SouthAmericaMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TwoThousandSeventeenEquityIncentivePlanMember" xlink:label="ssti_TwoThousandSeventeenEquityIncentivePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xlink:label="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UmpquaCreditAgreementMember" xlink:label="ssti_UmpquaCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" xlink:label="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FinancingReceivableAllowanceForCreditLossesAdjustment" xlink:label="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionThreeMember" xlink:label="ssti_DomesticFinancialInstitutionThreeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerDurationAxis" xlink:label="us-gaap_ContractWithCustomerDurationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_BS" xlink:label="country_BS"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodSharesAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PrepaidSoftwareAndLicensesCurrent" xlink:label="ssti_PrepaidSoftwareAndLicensesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities" xlink:label="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AcquiredSoftwareTechnologyMember" xlink:label="ssti_AcquiredSoftwareTechnologyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PerformanceBasedRestrictedStockUnitRSUMember" xlink:label="ssti_PerformanceBasedRestrictedStockUnitRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:label="us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerTwoMember" xlink:label="ssti_CustomerTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCostAndReserveLineItems" xlink:label="us-gaap_RestructuringCostAndReserveLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerOneMember" xlink:label="ssti_CustomerOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfCustomers" xlink:label="ssti_NumberOfCustomers"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntellectualPropertyMember" xlink:label="us-gaap_IntellectualPropertyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PSU-BasedPerformanceBonusPlanMember" xlink:label="ssti_PSU-BasedPerformanceBonusPlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PatentsMember" xlink:label="us-gaap_PatentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerThreeMember" xlink:label="ssti_CustomerThreeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LetterOfCreditSubfacilityMember" xlink:label="ssti_LetterOfCreditSubfacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember" xlink:label="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:label="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityExTransitionPeriod" xlink:label="dei_EntityExTransitionPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingStandardsUpdate201613Member" xlink:label="us-gaap_AccountingStandardsUpdate201613Member"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ShortTermDeposits" xlink:label="ssti_ShortTermDeposits"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PaymentForInvestmentInIntangibleAndOtherAssets" xlink:label="ssti_PaymentForInvestmentInIntangibleAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UnvestedRestrictedStockUnitsMember" xlink:label="ssti_UnvestedRestrictedStockUnitsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="us-gaap_LinesOfCreditCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfAssetsFairValueAdjustment" xlink:label="ssti_PercentageOfAssetsFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidInsurance" xlink:label="us-gaap_PrepaidInsurance"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:label="us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionTwoMember" xlink:label="ssti_DomesticFinancialInstitutionTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityExpirationDate1" xlink:label="us-gaap_LineOfCreditFacilityExpirationDate1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAmountsOfTransaction" xlink:label="us-gaap_RelatedPartyTransactionAmountsOfTransaction"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductionRelatedImpairmentsOrCharges" xlink:label="us-gaap_ProductionRelatedImpairmentsOrCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCostsCurrent" xlink:label="us-gaap_DeferredCostsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement" xlink:label="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" xlink:label="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionLineItems" xlink:label="us-gaap_RelatedPartyTransactionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventsAbstract" xlink:label="us-gaap_SubsequentEventsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireProductiveAssets" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" xlink:label="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates" xlink:label="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:label="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForLoanLossesExpensed" xlink:label="us-gaap_ProvisionForLoanLossesExpensed"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable" xlink:label="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:label="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:label="us-gaap_ComputerSoftwareIntangibleAssetMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ImpairmentOfPropertyAndEquipment" xlink:label="ssti_ImpairmentOfPropertyAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LeaseTerminationMember" xlink:label="ssti_LeaseTerminationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition" xlink:label="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RevenueFromRelatedParty" xlink:label="ssti_RevenueFromRelatedParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonUsMember" xlink:label="us-gaap_NonUsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionDomain" xlink:label="us-gaap_RelatedPartyTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="us-gaap_NetIncomeLossAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock" xlink:label="us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CreditFacilityExtendedMaturityDate" xlink:label="ssti_CreditFacilityExtendedMaturityDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember" xlink:label="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember"/>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Weighted Average Grant Date Fair Value per RSU, Vested</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Acquisition-Related Cost, Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition-related expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfDiscountedCashFlows_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Percentage of Discounted Cash Flows</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfDiscountedCashFlows_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Percentage of discounted cash flows</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfDiscountedCashFlows_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of discounted cash flows</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedEmployeeBenefitsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Personnel-related accruals</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedEmployeeBenefitsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Employee Benefits, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock, shares issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Shares Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Preferred Stock, Shares Issued, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BalanceSheetLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Financial Position Location, Balance [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contingent consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Accounts Payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Increase (Decrease) in Accounts Payable, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Change in fair value of contingent consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Contingent Consideration, Change in Contingent Consideration, Liability, Increase (Decrease)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contingent consideration - Forensic Logic (Note 4 - Business Acquisitions)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares Acquired, Average Cost Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Average price per share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Expenses And Other Current Liabilities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accrued expenses and other current liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PlanNameAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Plan Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PlanNameAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Plan Name [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Current Reporting Status</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCurrentReportingStatus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Current Reporting Status</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired and liabilities assumed current assets receivables and contract assets.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Assets Receivables And Contract Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable and contract assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpensesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpensesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Expenses [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments and Contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionOneMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Domestic Financial Institution One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionOneMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Domestic Financial Institution One [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionOneMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Domestic financial institution one.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Common stock, shares authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Shares Authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2029</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfRevenueVolatility_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Percentage of revenue volatility.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfRevenueVolatility_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Percentage Of Revenue Volatility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfRevenueVolatility_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of revenue volatility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductOrServiceAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product and Service [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Fiscal Period Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalPeriodFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Fiscal Period Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNoncurrentLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Noncurrent Liabilities [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNoncurrentLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Shell Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityShellCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Shell Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Other Guidance Issued But Not Yet Adopted Policy.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Guidance Issued But Not Yet Adopted Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other Guidance Issued But Not Yet Adopted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash and Cash Equivalent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cash and Cash Equivalents, at Carrying Value, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Cash and Cash Equivalents, at Carrying Value, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Cash and Cash Equivalents, at Carrying Value, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Denominator:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding Reconciliation [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed Accrued Expenses and Other Current Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired and liabilities assumed accrued expenses and other current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accrued expenses and other current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Common Stock, Shares, Issued, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock, shares issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesIssued_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Shares, Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statement [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant Date Fair Value per Option, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business acquisition purchase consideration in cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Businesses, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Issuance of common stock from RSUs vested, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period Shares Restricted Stock Award Vesting</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Stock issued during period shares restricted stock award vesting.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business Acquisition, Acquiree</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfAgencies_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of agencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfAgencies_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number of Agencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfAgencies_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of agencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Filer Category</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFilerCategory_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Filer Category</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue Recognized During the Year from New Billings</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Recognition From New Billings Of Deferred Revenue [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Recognition from new billings of deferred revenue.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total liabilities and stockholders' equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities and Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Instrument [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit Concentration Risk</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Concentration Risk [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted- average exercise price per share, exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringCostAndReserveAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CommonStockFairMarketValuePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock Fair Market Value Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CommonStockFairMarketValuePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Common stock fair market value percentage.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CommonStockFairMarketValuePercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock fair market value percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Voting Equity Interest Acquired, Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Membership interests, acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trade Names [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TradeNamesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Tradename</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Remaining Amortization Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible assets amortization period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessAndNatureOfOperationsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business And Nature Of Operations [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessAndNatureOfOperationsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business And Nature Of Operations [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessAndNatureOfOperationsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business and nature of operations.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Goodwill, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Balance, beginning of year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Balance, end of year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Goodwill_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeStockOptionMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Stock Options</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_SegmentGeographicalDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Geographical</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_SegmentGeographicalDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Geographical [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TechnologicSolutionsLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Technologic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TechnologicSolutionsLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Technologic solutions LLC</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TechnologicSolutionsLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Technologic Solutions LLC [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EmployeeStockPurchasePlanOfferingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Employee stock purchase plan offering period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EmployeeStockPurchasePlanOfferingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Employee Stock Purchase Plan Offering Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EmployeeStockPurchasePlanOfferingPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Employee stock purchase plan offering period.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Additional paid-in capital</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Additional Paid in Capital, Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Additional Paid in Capital, Common Stock, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Additional Paid in Capital, Common Stock, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Contract With Customer Liability Foreign Currency Impact</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract With Customer Liability Foreign Currency Impact</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Foreign currency impact</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Foreign currency impact</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Significant Accounting Policies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Significant Accounting Policies [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Terms of Award</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Employee stock purchase plan, description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Useful Life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Amortization Period (in years)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ShareRepurchaseProgramAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Repurchase Program [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Options Outstanding, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">RSU Awards granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Disaggregation Of Revenue [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disaggregation of Revenue [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrentDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other Assets Noncurrent Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrentDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Noncurrent Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Computation of Basic and Diluted Net Income (Loss) per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net income per share, basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Earnings Per Share, Basic, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net loss per share, basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Change in foreign currency translation adjustment, net of taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Foreign currency translation income (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Number of Options Outstanding, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Number of Options Outstanding, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest expense, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestIncomeExpenseNonoperatingNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest Income (Expense), Nonoperating</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revolving Facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevolvingCreditFacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revolving Credit Facility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Adjustments to reconcile net loss to net cash provided by (used in ) operating activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Changes in Fair Value of Contingent Consideration Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FeaturesOfConvertiblePreferredStockAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Features of Convertible Preferred Stock [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable and contract assets, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable And Contract Asset Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accounts receivable and contract asset current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accounts receivable and contract assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ShareRepurchaseProgramDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share Repurchase Program [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="country_UY_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Uruguay</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="country_UY_lbl" xlink:role="http://www.xbrl.org/2003/role/label">URUGUAY</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Standards Update [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restructured workforce percentage of eliminated headcount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring and Related Cost, Number of Positions Eliminated, Period Percent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stockholders' equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Small Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntitySmallBusiness_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Small Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated deficit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retained Earnings (Accumulated Deficit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Retained Earnings (Accumulated Deficit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Retained Earnings (Accumulated Deficit), Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Retained Earnings (Accumulated Deficit), Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SoundthinkingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">SoundThinking</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SoundthinkingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">SoundThinking [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SoundthinkingMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">SoundThinking.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Number of Options Outstanding, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Number of common stock shares canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceInitialPublicOffering_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proceeds from initial public offering, net of commissions and discounts</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceInitialPublicOffering_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Issuance Initial Public Offering</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate Intrinsic Value Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sales/ use tax payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Sales and Excise Tax Payable, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Incentive Plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Organization, Consolidation and Presentation of Financial Statements [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ProfessionalSoftwareDevelopmentServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Professional software development services.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ProfessionalSoftwareDevelopmentServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Professional software development services member</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Contract with Customer, Liability, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Balance at the beginning of the year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Balance at the end of the year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_ProductsAndServicesDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Product and Service [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Liabilities and Stockholders' Equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities and Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Operating Activity, Including Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash provided by (used in) operating activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="country_ZA_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">South Africa</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="country_ZA_lbl" xlink:role="http://www.xbrl.org/2003/role/label">SOUTH AFRICA</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting, CODM, Profit (Loss) Measure, How Used, Description</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares of common stock reserved for issuance, automatic annual increase end date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares Of Common Stock Reserved For Issuance Automatic Annual Increase End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Shares of common stock reserved for issuance, automatic annual increase end date.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Change in Accounting Principle, Accounting Standards Update, Immaterial Effect [true false]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Change in accounting principle, ASU, material effect</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares of common stock reserved for issuance, automatic annual increase initiation period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares Of Common Stock Reserved For Issuance Automatic Annual Increase Initiation Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Shares of common stock reserved for issuance automatic annual increase initiation period.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LineOfCreditWeightedAverageInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average interest rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LineOfCreditWeightedAverageInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Weighted Average Interest Rate.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LineOfCreditWeightedAverageInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Line of credit weighted average interest rate.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Revenue Recognized Adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Contract with Customer, Liability, Revenue Recognized Adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Adjustments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Hierarchy and NAV</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Hierarchy and NAV [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Supplemental Cash Flow Information [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Supplemental cash flow disclosures:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BalanceSheetLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Financial Position Location, Balance [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of PSUs outstanding based on target level of achievement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Percentage of PSUs Outstanding Based on Target Level of Achievement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Percentage of PSUs outstanding based on target level of achievement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease right-of-use assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Right-of-Use Asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired, Other Asset, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ForensicLogicLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Forensic Logic, LLC [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ForensicLogicLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Forensic Logic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ForensicLogicLlcMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Forensic logic, LLC.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash paid for income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Taxes Paid, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxesPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income Taxes Paid, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Gross profit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GrossProfit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gross Profit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfRevenueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfRevenueAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Revenue [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued Expenses and Other Current Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Expenses and Other Current Liabilities [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accrued expenses and other current liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringReserveCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring Reserve, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringReserveCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restructuring liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Excluding Exchange Rate Effect, Including Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Change in cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Balance Sheet Related Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock, par value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Par or Stated Value Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MoneyMarketFundsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Money market fund amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_MoneyMarketFundsAtCarryingValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Money Market Funds, at Carrying Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TypeOfAdoptionMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Standards Update [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other comprehensive income</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndemnificationGuaranteeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Indemnification Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IndemnificationGuaranteeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Indemnification Escrow</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EscrowClaimReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Escrow claim receivable.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EscrowClaimReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Escrow Claim Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EscrowClaimReceivable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Escrow claim</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Number of Options Outstanding, Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Exercise of stock options, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherPrepaidExpenseCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other prepaid expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherPrepaidExpenseCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Prepaid Expense, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfSalesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cost of Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfSalesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Sales [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current Fiscal Year End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CurrentFiscalYearEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Current Fiscal Year End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtInstrumentTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Long-Term Debt Instruments [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNoncurrentLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Other Long-term Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNoncurrentLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Noncurrent Liabilities [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Quarterly Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentQuarterlyReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Quarterly Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UnvestedPerformanceStockUnitsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Unvested Performance Stock Units [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UnvestedPerformanceStockUnitsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Unvested performance stock units.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UnvestedPerformanceStockUnitsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Unvested Performance Stock Units</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Relationships [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerRelationshipsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer Relationships</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Number of RSUs, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Number of RSUs, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_StockRepurchaseProgramMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchase Program [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_StockRepurchaseProgramMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Stock Repurchase Program.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_StockRepurchaseProgramMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock Repurchase Program</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock, shares outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Preferred Stock, Shares Outstanding, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Preferred Stock, Shares Outstanding, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Comprehensive income (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Comprehensive loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired and liabilities assumed operating lease liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed Operating Lease Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_StatementGeographicalAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Geographical</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_StatementGeographicalAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Geographical [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Lender [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Revenue recognized during the year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Revenue Recognized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue recognized during the year from balance at the beginning of the year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Transaction costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Transaction Cost, Excluding Separately Recognized Transaction</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Accounts Receivable and Contract Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts Receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Stock-Based Compensation Expense for All Award Types Recorded in Consolidated Statements of Operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Schedule of Stock-Based Compensation Expense Recorded in Consolidated Statements of Operations</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Exercise of stock options</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Value, Stock Options Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Recognition From Balance at the Beginning of the Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Recognition From Beginning Deferred Revenue Balance [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Recognition from beginning deferred revenue balance.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Subsequent Event</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Antidilutive Securities [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Measure of Progress</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">New billings</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Vesting terms percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Rights, Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate Fair Value of RSUs' Vested</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Vested fair value amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Aggregate intrinsic value, vested and expected to vest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related Party Transaction</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party Transaction [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired escrow claim and liabilities assumed net.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired Escrow Claim And Liabilities Assumed Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total estimated consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">AOCI Attributable to Parent [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated Other Comprehensive Loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_NameOfMajorCustomerDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_NameOfMajorCustomerDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Consideration Transferred</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Consideration Transferred, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business acquisition estimated purchase consideration/purchase consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessAndNatureOfOperationsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business And Nature Of Operations [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessAndNatureOfOperationsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business And Nature Of Operations [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessAndNatureOfOperationsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business and nature of operations.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Preferred Stock, Value, Issued, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Preferred Stock, Value, Issued, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Preferred Stock, Value, Issued, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Value, Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock: $0.005 par value; 20,000,000 shares authorized; no shares issued and outstanding as of March 31, 2024 and December 31, 2023, respectively</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Business acquisition, intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired, Identifiable Intangible Asset, Finite-Lived</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Identifiable technology and intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Minimum</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MinimumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Minimum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Grant Date Fair Value, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Weighted Average Grant Date Fair Value per RSU, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase Decrease In Accounts Receivable And Contract Asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Increase decrease in accounts receivable and contract asset.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Accounts receivable and contract asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Schedule of accounts receivable and contract asset.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Accounts Receivable and Contract Asset [Table TextBlock]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Accounts Receivable and Contract Assets, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amortization of intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amortization of Intangible Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Amortization of Intangible Assets, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AmortizationOfIntangibleAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Intangible amortization expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueInputsLevel3Member_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Level 3</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueInputsLevel3Member_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Inputs, Level 3 [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesFairValueDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Fair Value Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LiabilitiesCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring and Related Activities Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restructuring</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party Transactions [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Beginning balance, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Ending balance, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares, Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Receivable, after Allowance for Credit Loss, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accounts Receivable, after Allowance for Credit Loss, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsReceivableNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingencies_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Commitments and contingencies (Note 11)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Weighted Average Grant Date Fair Value per RSU, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Weighted Average Grant Date Fair Value per RSU, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">General and Administrative</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">General and Administrative Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Goodwill [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Changes in Goodwill</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Benchmark</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Benchmark [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed Current Assets Receivables and Contract Assets Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired and liabilities assumed current assets receivables and contract assets net.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts receivable and contract assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Effect of exchange rate on cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Effect of Exchange Rate on Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Including Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProfitLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net income (loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProfitLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Income (Loss), Including Portion Attributable to Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProfitLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net Income (Loss), Including Portion Attributable to Noncontrolling Interest, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProfitLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired, Cash and Cash Equivalent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash and cash equivalents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">State income tax payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedIncomeTaxesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Income Taxes, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Recognized Amount [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfSubsidiary_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of subsidiary</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfSubsidiary_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Subsidiary</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfSubsidiary_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of subsidiary.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Weighted-average shares outstanding, basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Weighted Average Number of Shares Outstanding, Basic, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average shares used in computing net loss per share, basic</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisition (Note 4 - Acquisitions)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Goodwill recorded on acquisition of LEEDS</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill, Acquired During Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Plan Modification, Incremental Cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Recognized net incremental compensation expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Share Based Compensation Arrangements By Share Based Payment Award [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Asset acquisition related expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Asset Acquisition, Consideration Transferred, Transaction Cost</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related Party Transactions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party Transactions Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">APIC, Share-based Payment Arrangement, Increase for Cost Recognition, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Contingent Consideration, Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contingent consideration liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accrued liabilities and other liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Liabilities And Other Liabilities [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued Expenses and Other Current Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Beginning balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Ending balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity, Attributable to Parent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquity_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total stockholders' equity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock, par value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Par or Stated Value Per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Basis of Presentation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Basis of Accounting, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountingPoliciesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accounting policies.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountingPoliciesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounting Policies [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountingPoliciesLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Policies [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountingPoliciesTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Policies [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountingPoliciesTable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Accounting policies.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AccountingPoliciesTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounting Policies [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Stockholders' Equity [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Liabilities Measured On Recurring Basis Unobservable Input Reconciliation [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TypeOfRestructuringDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Type of Restructuring [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Remainder of 2025</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UseOfEstimates_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Use of Estimates</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_UseOfEstimates_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Use of Estimates, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired, Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property and equipment, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PatentsAndIntellectualPropertyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Patents and Intellectual Property</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PatentsAndIntellectualPropertyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Patents and Intellectual Property [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PatentsAndIntellectualPropertyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Patents and Intellectual Property.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Selling and Marketing Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sales and Marketing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Measurements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Disclosures [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="country_US_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">United States</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="country_US_lbl" xlink:role="http://www.xbrl.org/2003/role/label">UNITED STATES</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accrued expenses and other current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued expenses and other current liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Liabilities and Other Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting, CODM, Individual Title and Position or Group Name [Extensible Enumeration]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred commissions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Costs, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCosts_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred Costs, Noncurrent, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PlanNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Plan Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accelerated vesting</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Accelerated Vesting, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Payment of contingent consideration liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Interest expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest Expense, Operating and Nonoperating</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Interest Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contingent Consideration Classified as Equity, Fair Value Disclosure</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Estimated fair value of contingent consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Estimated fair value of contingent consideration liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FairValueAdjustmentOfContingentConsideration_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Change in fair value of contingent consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FairValueAdjustmentOfContingentConsideration_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contingent consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FairValueAdjustmentOfContingentConsideration_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Adjustment Of Contingent Consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FairValueAdjustmentOfContingentConsideration_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Fair value adjustment of contingent consideration.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cost of revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Product and Service Sold</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfGoodsAndServicesSold_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cost of Goods and Services Sold, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfCitiesInWhichEntityOperates_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of cities in which entity operates</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfCitiesInWhichEntityOperates_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Cities In Which Entity Operates</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfCitiesInWhichEntityOperates_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of cities in which entity operates.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Property And Equipment Purchases And Intangibles Included In Accounts Payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Property and equipment purchases and intangibles included in accounts payable.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Purchases of property and equipment and intangibles included in accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationConsiderationPaidInKind_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business combination consideration paid in kind</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationConsiderationPaidInKind_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Consideration Paid In Kind</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationConsiderationPaidInKind_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination consideration paid in kind.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Earnout will be payable based on estimated revenues generated</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Contingent Consideration, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Business Combination, Contingent Consideration, Liability, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashFDICInsuredAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash deposits insured</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashFDICInsuredAmount_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, FDIC Insured Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Repurchase of common stock, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Repurchase of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchased During Period, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CreditFacilityDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtWeightedAverageInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average interest rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtWeightedAverageInterestRate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt, Weighted Average Interest Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Assets Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intangible Assets, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_CounterpartyNameAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Counterparty Name [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Loss before income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of options, vested and expected to vest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskTypeDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Type [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Software technology</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Technology-Based Intangible Assets [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerDurationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contract with Customer, Duration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerDurationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Duration [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Antidilutive Securities, Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SubscriptionMaintenanceAndSupportServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Subscription, maintenance, and support services.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SubscriptionMaintenanceAndSupportServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subscription, maintenance and support services Member</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Continuing Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Cash and cash equivalents at beginning of year</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Cash and cash equivalents at end of period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash paid for interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_InterestPaidNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Interest Paid, Excluding Capitalized Interest, Operating Activity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statistical Measurement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statistical Measurement [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Transfers, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Transfers, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Transfers into or out of level 3</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Compensation expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Remaining Performance Obligations for Contractually Committed Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Hierarchy and NAV</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Hierarchy and NAV [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of options, exercisable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Recent Accounting Pronouncements Not Yet Effective</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Recent Accounting Pronouncements Not Yet Effective Policy Policy [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Recent accounting pronouncements not yet effective.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Assets, Miscellaneous, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Gain (Loss) on Disposition of Property Plant Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Gain (Loss) on Disposition of Property Plant Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Loss on disposal of property and equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted average amortization period of intangible assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfFinancialPositionAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Financial Position [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restricted Stock Unit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestrictedStockUnitsRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restricted Stock Units (RSUs) [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency Nature [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LossContingencyNatureDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Loss Contingency, Nature [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Antidilutive Security, Excluded EPS Calculation [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other comprehensive loss:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EscrowDepositDisbursementsRelatedToAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Indemnification escrow cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EscrowDepositDisbursementsRelatedToAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Escrow Deposit Disbursements Related To Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_EscrowDepositDisbursementsRelatedToAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Amount of escrow deposit disbursements related to acquisition includes only cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Liabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_SouthAmericaMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">South America [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_SouthAmericaMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">South America</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TwoThousandSeventeenEquityIncentivePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2017 Equity Incentive Plan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TwoThousandSeventeenEquityIncentivePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Two Thousand Seventeen Equity Incentive Plan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TwoThousandSeventeenEquityIncentivePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">2017 Equity Incentive Plan.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/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).</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, after Year Four</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Thereafter</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UmpquaCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Umpqua credit agreement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UmpquaCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Umpqua Credit Agreement [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UmpquaCreditAgreementMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Umpqua Credit Agreement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Expense and Other Assets, Current [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Finite-Lived Intangible Assets, Gross, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Gross</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Weighted-average shares outstanding, diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Weighted Average Number of Shares Outstanding, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted-average shares used in computing net loss per share, diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Securities Act File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Increase in common stock reserved for issuance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase In Common Stock Capital Shares Reserved For Future Issuance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Increase in common stock capital shares reserved for future issuance.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Allowance for credit losses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financing Receivable Allowance for Credit Losses Adjustment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Allowance for potential credit losses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Financing receivable allowance for credit losses adjustment.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CoverAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cover [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Expense and Other Assets, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Prepaid expenses and other current assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel">Number of RSUs, Forfeited</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Cancelled restricted stock units</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Percentage of Outstanding Stock Maximum</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of number of shares of common stock outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Details of Certain Condensed Consolidated Balance Sheet Accounts</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Supplemental Balance Sheet Disclosures [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionThreeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Domesticfinancialinstitutionthree.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionThreeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Domestic Financial Institution Three [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionThreeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Domestic Financial Institution Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SalesRevenueNetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue Benchmark [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NumberOfOperatingSegments_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number of Operating Segments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NumberOfOperatingSegments_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Operating Segments</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NumberOfOperatingSegments_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Number of operating segment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Segment Reporting</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Segment Reporting Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">General and administrative</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">General and Administrative Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GeneralAndAdministrativeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">General and Administrative Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerDurationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contract with Customer, Duration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerDurationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Duration [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="country_BS_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Bahamas</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="country_BS_lbl" xlink:role="http://www.xbrl.org/2003/role/label">BAHAMAS</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesAcquisitions_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Issuance of common stock from acquisitions, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesAcquisitions_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Shares, Acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesAcquisitions_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Issuance of common stock for acquisition, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PrepaidSoftwareAndLicensesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Prepaid software and licenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PrepaidSoftwareAndLicensesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Software And Licenses Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PrepaidSoftwareAndLicensesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Prepaid software and licenses current.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Pro Forma Information, Pro Forma Income (Loss), after Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proforma combined loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Intangible assets, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Finite-Lived Intangible Assets, Net, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Finite-Lived Intangible Assets, Net, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted- average exercise price per share, vested and expected to vest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring Charges</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Restructuring Charges, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Restructuring expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Recent Accounting Pronouncements Adopted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Antidilutive Securities Excluded From Computation Of Earnings Per Share [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue, short-term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Right-of-Use Assets Obtained In Exchange For Lease Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Right-of-use assets obtained in exchange for lease liabilities.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">ROU Assets obtained in exchange for lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeSeveranceMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Employee Severance [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EmployeeSeveranceMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Employee Severance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AcquiredSoftwareTechnologyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquired Software Technology</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AcquiredSoftwareTechnologyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Acquired Software Technology [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_AcquiredSoftwareTechnologyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Acquired software technology.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Depreciation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Depreciation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Depreciation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Depreciation, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Depreciation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Depreciation of property and equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Common Stock, Shares, Outstanding, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock, shares outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Shares, Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Common Stock, Shares, Outstanding, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease liabilities, net of current portion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating lease liabilities, current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Estimated remaining performance obligations for contractually committed revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Transition Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentTransitionReport_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Transition Report</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingExpenses_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total operating expenses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Research and development</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Research and Development Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Research and Development Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CostOfRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cost of Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Repurchases of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments for Repurchase of Common Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfCashFlowsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Cash Flows [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Stock Option Activity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Capital Stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Stock Repurchase Program</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PerformanceBasedRestrictedStockUnitRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Performance-based RSU</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PerformanceBasedRestrictedStockUnitRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Performance Based Restricted Stock Unit R S U [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PerformanceBasedRestrictedStockUnitRSUMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Performance Based Restricted Stock Unit RSU.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Finite Lived Intangible Assets [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net Income (Loss) per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SafepointeLLCMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">SafePointe, LLC</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SafepointeLLCMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">SafePointe L L C [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SafepointeLLCMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Safepointe L L C.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Prepaid expenses and other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Increase (Decrease) in Prepaid Expense and Other Assets, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringAndRelatedActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring and Related Activities [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Fiscal Year Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentFiscalYearFocus_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Fiscal Year Focus</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerTwoMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerTwoMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Two [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerTwoMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Customer two.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration Risk Benchmark</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk Benchmark [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Period Increase (Decrease), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Period Increase (Decrease)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Change in fair value of contingent consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Estimated remaining performance obligations for contractually committed revenues recognition period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from investing activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Investing Activity, Including Discontinued Operation [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounts Payable, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountsPayableCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accounts Payable, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Research and Development</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Research and Development Expense [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contingent consideration - Forensic Logic (Note 4 - Acquistions)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Purchases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Changes in Deferred Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Prepaid Expenses and Other Current Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringCostAndReserveLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring Cost and Reserve [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2026</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proceeds from exercise of stock options</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromStockOptionsExercised_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Stock Options Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueDisclosuresAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Disclosures [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Commitments and Contingencies Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Issuance of common stock from acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Value, Acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Liability Assumed, Deferred Revenue, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net assets acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired to Liability Assumed, Excess (Less)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net assets acquired</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerOneMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerOneMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer One [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerOneMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Customer one.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Long-Term Line of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Long-Term Line of Credit, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Asset, after Allowance for Credit Loss, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Contract with Customer, Asset, after Allowance for Credit Loss, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Contract assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Payment of contingent consideration liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Payment of contingent consideration liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment for Contingent Consideration Liability, Financing Activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value of common stock issued as consideration for asset acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Asset Acquisition, Consideration Transferred, Equity Interest Issued and Issuable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Excluding Option Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proceeds from employee stock purchase plan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentration risk percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskPercentage1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk, Percentage</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfCustomers_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of customers</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfCustomers_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Customers</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfCustomers_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of customers.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Unvested Restricted Stock Units Awards Activity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Nonvested Restricted Stock Units Activity [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Revenues_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Revenues_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Revenues_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Revenues, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Revenues_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Revenue from related parties</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntellectualPropertyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Intellectual Property</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IntellectualPropertyMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intellectual Property [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash used in investing activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Investing Activity, Including Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price, Canceled</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Grant Date Fair Value per RSU, Forfeited</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PSU-BasedPerformanceBonusPlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">PSU-Based Performance Bonus Plan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PSU-BasedPerformanceBonusPlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">PSU-based performance bonus plan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PSU-BasedPerformanceBonusPlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">PSU-Based Performance Bonus Plan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PatentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Patents [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PatentsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Patents</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Changes in operating assets and liabilities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Increase (Decrease) in Operating Capital [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Weighted Average Exercise Price, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Weighted Average Exercise Price, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerThreeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerThreeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Customer three.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CustomerThreeMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Three [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Additional Paid-in Capital</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AdditionalPaidInCapitalMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Additional Paid-in Capital [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accrued expenses and other liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LetterOfCreditSubfacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Letter of credit subfacility.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LetterOfCreditSubfacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Letter Of Credit Subfacility [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LetterOfCreditSubfacilityMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Letter of Credit Sub-facility</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2017 Employee Stock Purchase Plan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Two Thousand And Seventeen Employee Stock Purchase Plan [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Two thousand and seventeen employee stock purchase plan.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Measurement Frequency [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Statement Location</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Income Location, Balance [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Change in Accounting Principle, Accounting Standards Update, Adoption Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Change in accounting principle, ASU, adoption date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Intangible Asset, Finite-Lived [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule Of Related Party Transactions By Related Party [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party Transaction [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventTypeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Event Type [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Intangible Assets Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Financing Activity, Including Discontinued Operation [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from financing activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementsRecurringMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Recurring [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementsRecurringMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Measurements Recurring</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueMeasurementsRecurringMember_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Fair Value Measurements Recurring</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityExTransitionPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Ex Transition Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityExTransitionPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Ex Transition Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountingStandardsUpdate201613Member_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">ASU 2016-13</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountingStandardsUpdate201613Member_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Standards Update 2016-13 [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Sales and marketing</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Selling and Marketing Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SellingAndMarketingExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Selling and Marketing Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Maximum Employee Subscription Rate</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of payroll deductions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ShortTermDeposits_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Short-term deposits.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ShortTermDeposits_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Short Term Deposits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ShortTermDeposits_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Short-term deposits</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PaymentForInvestmentInIntangibleAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Investment in intangible and other assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PaymentForInvestmentInIntangibleAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payment For Investment In Intangible And Other Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PaymentForInvestmentInIntangibleAndOtherAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Payment for investment in intangible and other assets.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Components [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementEquityComponentsAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Components [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UnvestedRestrictedStockUnitsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Unvested Restricted Stock Units</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UnvestedRestrictedStockUnitsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Unvested Restricted Stock Units [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_UnvestedRestrictedStockUnitsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Unvested restricted stock units.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LinesOfCreditCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LinesOfCreditCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Line of credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total other expense, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Nonoperating Income (Expense)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Equity Component</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EquityComponentDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Equity Component [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Summary of Assignment of Fair Value to Identified Assets and Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Recognized Asset Acquired and Liability Assumed [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Business Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfAssetsFairValueAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Percentage of assets, fair value adjustment.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfAssetsFairValueAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Percentage of Assets, Fair Value Adjustment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PercentageOfAssetsFairValueAdjustment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Percentage of assets, fair value adjustment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidInsurance_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Prepaid insurance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PrepaidInsurance_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Prepaid Insurance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Shares issued under ESPP</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Issuance of common stock from ESPP purchase, Shares</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Shares, Employee Stock Purchase Plans</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MajorCustomersAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MajorCustomersAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue Remaining Performance Obligation Expected Timing Of Satisfaction [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring Charges, Statement of Income or Comprehensive Income [Extensible Enumeration]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Comprehensive Income [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Maximum [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_MaximumMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maximum</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionTwoMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Domestic Financial Institution Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionTwoMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Domestic Financial Institution Two [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_DomesticFinancialInstitutionTwoMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Domestic financial institution two.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Statistical Measurement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RangeAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statistical Measurement [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted Average Exercise Price, Exercised</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue, long-term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel">Accumulated Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Common Stock, Value, Issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Common Stock, Value, Issued, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Common Stock, Value, Issued, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Common Stock, Value, Issued, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CommonStockValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Common stock: $0.005 par value; 500,000,000 shares authorized; 12,788,631 and 12,634,485 shares issued and outstanding as of June 30, 2025 and December 31, 2024, respectively</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Shares of common stock reserved for issuance automatic annual increase start date.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Shares Of Common Stock Reserved For Issuance Automatic Annual Increase Start Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Shares of common stock reserved for issuance, automatic annual increase start date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityExpirationDate1_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Credit facility maturity date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityExpirationDate1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Expiration Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired and liabilities assumed escrow claim.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Escrow Claim</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Escrow claim</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionAmountsOfTransaction_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related party transactions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionAmountsOfTransaction_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party Transaction, Amounts of Transaction</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductionRelatedImpairmentsOrCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Impairment of property and equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductionRelatedImpairmentsOrCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Production Related Impairments or Charges</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProductionRelatedImpairmentsOrCharges_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Production Related Impairments or Charges, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Future Intangible Asset Amortization</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCostsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred commissions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCostsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Costs, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCostsCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred Costs, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Expense After Target Achievement</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Share-based payment arrangement, expense after target achievement.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Expense related to achievement of the minimum target</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Preferred Stock, Shares Authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PreferredStockSharesAuthorized_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preferred stock, shares authorized</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Number of financial institutions at which cash deposits are maintained</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of financial institutions at which cash deposits are maintained.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Financial Institutions At Which Cash Deposits Are Maintained</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of financial institutions at which cash deposits are maintained</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lender Name [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related Party Transaction [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party Transaction [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue Related Disclosures</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Financing Arrangements</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DebtDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Debt Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Customer Concentration Risk</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_CustomerConcentrationRiskMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Customer Concentration Risk [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair Value Liabilities Measured On Recurring Basis Unobservable Input Reconciliation [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2027</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Nonoperating Income (Expense)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Nonoperating Income (Expense), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherNonoperatingIncomeExpense_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other expense, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SubsequentEventsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Subsequent Events [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Finite-Lived Intangible Asset, Expected Amortization, Year Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">2028</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Income Tax Expense (Benefit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Tax Expense (Benefit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Provision for income taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Measurement Frequency [Axis]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Asset acquisition purchase consideration in cash</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Productive Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments to Acquire Productive Assets, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Repurchase of common stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Repurchase of common stock amount</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Repurchased During Period, Value</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Common Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCommonStockSharesOutstanding_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Common Stock, Shares Outstanding</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Concentrations of Risk</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ConcentrationRiskCreditRisk_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Concentration Risk, Credit Risk, Policy [Policy Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated other comprehensive loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accumulated Other Comprehensive Income (Loss), Net of Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Accumulated Other Comprehensive Income (Loss), Net of Tax, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Purchase of property and equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Payments to Acquire Property, Plant, and Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Payments to Acquire Property, Plant, and Equipment, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Periodic increment of common stock reserved for future issuance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Periodic Increment Of Common Stock Capital Shares Reserved For Future Issuance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Periodic increment of common stock capital shares reserved for future issuance.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of RSUs, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Number of Restricted Stock Units, Granted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of universities and corporations in which entity operates</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Number Of Universities And Corporations In Which Entity Operates</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Number of universities and corporations in which entity operates.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Total assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_Assets_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Income Statement [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Restructuring Cost [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Income Tax Expense (Benefit)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred taxes</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Deferred Income Tax Expense (Benefit), Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit agreement date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Initiation Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Number of RSUs, Vested</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of Restricted Stock Units, Vested</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationsAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Net income per share, diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Earnings Per Share, Diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Earnings Per Share, Diluted, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_EarningsPerShareDiluted_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Net loss per share, diluted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease right-of-use assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed Operating Lease Right of Use Asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Business combination recognized identifiable assets acquired and liabilities assumed operating lease right of use asset</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Contingent consideration (Note 4 - Acquistions)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Preliminary fair value of the contingent consideration</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Consideration Transferred, Liabilities Incurred</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proforma revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Pro Forma Information, Pro Forma Revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenues acquired (Note 4 - Acquisitions)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Contract with Customer, Liability, Increase (Decrease) for Contract Acquired in Business Combination</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProvisionForLoanLossesExpensed_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Financing Receivable, Credit Loss, Expense (Reversal)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProvisionForLoanLossesExpensed_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Allowance for credit losses</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Proceeds from line of credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Proceeds from Lines of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ProceedsFromLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Proceeds from Lines of Credit, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility maximum borrowing capacity under loan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessAcquisitionLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Counterparty Name [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Purchases of property and equipment included in accounts payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Property And Equipment Purchases Included In Accounts Payable</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Property and equipment purchases included in accounts payable.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock Issued During Period, Value, Employee Stock Purchase Plan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Issuance of common stock from ESPP purchases</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ComputerSoftwareIntangibleAssetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Computer Software, Intangible Asset [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ComputerSoftwareIntangibleAssetMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Software Technology</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Purchase consideration indemnification escrow stock</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Business Combination, Consideration Transferred, Equity Interest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Business acquisition purchase consideration, stock issued</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Property and equipment, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Property, Plant and Equipment, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Property, Plant and Equipment, Net, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel">Property, Plant and Equipment, Net, Beginning Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_PropertyPlantAndEquipmentNet_lbl" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel">Property, Plant and Equipment, Net, Ending Balance</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Income (Loss)</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingIncomeLoss_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Operating loss</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Accumulated Deficit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RetainedEarningsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Retained Earnings [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ImpairmentOfPropertyAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Impairment Of Property And Equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ImpairmentOfPropertyAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Impairment of property and equipment</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_ImpairmentOfPropertyAndEquipment_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Impairment of property and equipment.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Stock-based compensation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Payment Arrangement, Noncash Expense</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensation_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Share-based Payment Arrangement, Noncash Expense, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LeaseTerminationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Lease Termination [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LeaseTerminationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Lease termination</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_LeaseTerminationMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Lease Termination</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Operating lease liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Operating Lease, Liability, Noncurrent</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/verboseLabel">Operating lease liabilities, net of current portion</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ClassOfStockLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Class of Stock [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Financing Activity, Including Discontinued Operation</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Net cash used in financing activities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Change in Accounting Principle, Accounting Standards Update, Adopted [true false]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Change in accounting principle, ASU, adopted</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred tax liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Deferred Income Tax Liabilities, Net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Nonoperating Income (Expense) [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other expense, net</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfGoodwillTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Goodwill [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Fair value of common stock issued as consideration for acquisitions</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Fair Value Of Common Stock Issued As Consideration For Business Acquisition</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Fair value of common stock issued as consideration for business acquisition.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RevenueFromRelatedParty_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenue from related parties</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RevenueFromRelatedParty_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Related Party</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_RevenueFromRelatedParty_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Revenue from related party.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NonUsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">International</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NonUsMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Non-US [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Loss per Share</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Interactive Data Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityInteractiveDataCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Interactive Data Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Deferred revenue</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Increase (Decrease) in Contract with Customer, Liability</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Income Statement Location</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_IncomeStatementLocationDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Statement of Income Location, Balance [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Cash flows from operating activities:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cash Provided by (Used in) Operating Activity, Including Discontinued Operation [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Repayments of Lines of Credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Payment of line of credit costs</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RepaymentsOfLinesOfCredit_lbl" xlink:role="http://www.xbrl.org/2009/role/negatedLabel">Payment of line of credit</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility current borrowing capacity under loan</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Line of Credit Facility, Current Borrowing Capacity</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Organization and Description of Business</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Related Party Transaction</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RelatedPartyTransactionDomain_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Related Party Transaction [Domain]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Other</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Other Liabilities, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_OtherLiabilitiesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Other Liabilities, Current, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccountingPoliciesAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accounting Policies [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Disaggregation Of Revenue [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_DisaggregationOfRevenueLineItems_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Disaggregation of Revenue [Line Items]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Revenues</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Revenue from Contract with Customer, Excluding Assessed Tax</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl" xlink:role="http://www.xbrl.org/2003/role/totalLabel">Revenue from Contract with Customer, Excluding Assessed Tax, Total</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Numerator:</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_NetIncomeLossAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Net Income (Loss) Attributable to Parent [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Other Assets, Noncurrent [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Other Long-term Assets</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CreditFacilityExtendedMaturityDate_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Credit facility extended maturity date.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CreditFacilityExtendedMaturityDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Credit Facility Extended Maturity Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_CreditFacilityExtendedMaturityDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Credit facility extended maturity date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Number of shares available for future grant</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Professional fees</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_AccruedProfessionalFeesCurrent_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Accrued Professional Fees, Current</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Schedule of Accrued Expenses and Other Current Liabilities</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Schedule of Accounts Payable and Accrued Liabilities [Table Text Block]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_ScheduleOfStockByClassTable_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Stock, Class of Stock [Table]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Weighted- average remaining contractual term (in years), vested and expected to vest</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/documentation">Maintenance, Support and Professional Software Development Services.</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Maintenance, Support and Professional Software Development Services [Member]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Maintenance and Support Services and Professional Software Development Services</link:label>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PercentageOfDiscountedCashFlows" xlink:to="ssti_PercentageOfDiscountedCashFlows_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedEmployeeBenefitsCurrent" xlink:to="us-gaap_AccruedEmployeeBenefitsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_BalanceSheetLocationDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_EquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpensesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_DomesticFinancialInstitutionOneMember" xlink:to="ssti_DomesticFinancialInstitutionOneMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PercentageOfRevenueVolatility" xlink:to="ssti_PercentageOfRevenueVolatility_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductOrServiceAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncurrentLiabilitiesMember" xlink:to="us-gaap_OtherNoncurrentLiabilitiesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock" xlink:to="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillDisclosureTextBlock" xlink:to="us-gaap_GoodwillDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" xlink:to="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_NumberOfAgencies" xlink:to="ssti_NumberOfAgencies_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember" xlink:to="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditConcentrationRiskMember" xlink:to="us-gaap_CreditConcentrationRiskMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_RestructuringCostAndReserveAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_CommonStockFairMarketValuePercentage" xlink:to="ssti_CommonStockFairMarketValuePercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeNamesMember" xlink:to="us-gaap_TradeNamesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1" xlink:to="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_BusinessAndNatureOfOperationsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_SegmentGeographicalDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_TechnologicSolutionsLlcMember" xlink:to="ssti_TechnologicSolutionsLlcMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_EmployeeStockPurchasePlanOfferingPeriod" xlink:to="ssti_EmployeeStockPurchasePlanOfferingPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact" xlink:to="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ShareRepurchaseProgramAxis" xlink:to="srt_ShareRepurchaseProgramAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrentDisclosureAbstract" xlink:to="us-gaap_OtherAssetsNoncurrentDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:to="us-gaap_InterestIncomeExpenseNonoperatingNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevolvingCreditFacilityMember" xlink:to="us-gaap_RevolvingCreditFacilityMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FeaturesOfConvertiblePreferredStockAbstract" xlink:to="us-gaap_FeaturesOfConvertiblePreferredStockAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_AccountsReceivableAndContractAssetCurrent" xlink:to="ssti_AccountsReceivableAndContractAssetCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ShareRepurchaseProgramDomain" xlink:to="srt_ShareRepurchaseProgramDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_UY" xlink:to="country_UY_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:to="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_SoundthinkingMember" xlink:to="ssti_SoundthinkingMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceInitialPublicOffering" xlink:to="us-gaap_ProceedsFromIssuanceInitialPublicOffering_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesAndExciseTaxPayableCurrent" xlink:to="us-gaap_SalesAndExciseTaxPayableCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_ProfessionalSoftwareDevelopmentServicesMember" xlink:to="ssti_ProfessionalSoftwareDevelopmentServicesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiability" xlink:to="us-gaap_ContractWithCustomerLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ProductsAndServicesDomain" xlink:to="srt_ProductsAndServicesDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_ZA" xlink:to="country_ZA_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription" xlink:to="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_LineOfCreditWeightedAverageInterestRate" xlink:to="ssti_LineOfCreditWeightedAverageInterestRate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments" xlink:to="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyAbstract" xlink:to="us-gaap_LossContingencyAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement" xlink:to="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_ForensicLogicLlcMember" xlink:to="ssti_ForensicLogicLlcMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfRevenueAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember" xlink:to="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringReserveCurrent" xlink:to="us-gaap_RestructuringReserveCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_BalanceSheetRelatedDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MoneyMarketFundsAtCarryingValue" xlink:to="us-gaap_MoneyMarketFundsAtCarryingValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_TypeOfAdoptionMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IndemnificationGuaranteeMember" xlink:to="us-gaap_IndemnificationGuaranteeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_EscrowClaimReceivable" xlink:to="ssti_EscrowClaimReceivable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherPrepaidExpenseCurrent" xlink:to="us-gaap_OtherPrepaidExpenseCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncurrentLiabilitiesTableTextBlock" xlink:to="us-gaap_OtherNoncurrentLiabilitiesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentQuarterlyReport" xlink:to="dei_DocumentQuarterlyReport_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_UnvestedPerformanceStockUnitsMember" xlink:to="ssti_UnvestedPerformanceStockUnitsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_StockRepurchaseProgramMember" xlink:to="ssti_StockRepurchaseProgramMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:to="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableMember" xlink:to="us-gaap_AccountsReceivableMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember" xlink:to="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventMember" xlink:to="us-gaap_SubsequentEventMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress" xlink:to="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionAxis" xlink:to="us-gaap_RelatedPartyTransactionAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="srt_NameOfMajorCustomerDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessAndNatureOfOperationsTable" xlink:to="ssti_BusinessAndNatureOfOperationsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset" xlink:to="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock" xlink:to="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel3Member" xlink:to="us-gaap_FairValueInputsLevel3Member_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:to="us-gaap_LiabilitiesFairValueDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:to="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsAbstract" xlink:to="us-gaap_RelatedPartyTransactionsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesOutstanding" xlink:to="us-gaap_SharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsReceivableNetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpenseMember" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProfitLoss" xlink:to="us-gaap_ProfitLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedIncomeTaxesCurrent" xlink:to="us-gaap_AccruedIncomeTaxesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract" xlink:to="us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_NumberOfSubsidiary" xlink:to="ssti_NumberOfSubsidiary_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAcquiredDuringPeriod" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:to="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:to="us-gaap_RelatedPartyTransactionsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember" xlink:to="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="ssti_AccountingPoliciesLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_AccountingPoliciesTable" xlink:to="ssti_AccountingPoliciesTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_TypeOfRestructuringDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PatentsAndIntellectualPropertyMember" xlink:to="ssti_PatentsAndIntellectualPropertyMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpenseMember" xlink:to="us-gaap_SellingAndMarketingExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_US" xlink:to="country_US_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" xlink:to="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCosts" xlink:to="us-gaap_DeferredCosts_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PlanNameDomain" xlink:to="us-gaap_PlanNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure" xlink:to="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_FairValueAdjustmentOfContingentConsideration" xlink:to="ssti_FairValueAdjustmentOfContingentConsideration_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_NumberOfCitiesInWhichEntityOperates" xlink:to="ssti_NumberOfCitiesInWhichEntityOperates_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable" xlink:to="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessCombinationConsiderationPaidInKind" xlink:to="ssti_BusinessCombinationConsiderationPaidInKind_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashFDICInsuredAmount" xlink:to="us-gaap_CashFDICInsuredAmount_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodShares" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtWeightedAverageInterestRate" xlink:to="us-gaap_DebtWeightedAverageInterestRate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_CounterpartyNameAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:to="us-gaap_TechnologyBasedIntangibleAssetsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerDurationDomain" xlink:to="us-gaap_ContractWithCustomerDurationDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_SubscriptionMaintenanceAndSupportServicesMember" xlink:to="ssti_SubscriptionMaintenanceAndSupportServicesMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock" xlink:to="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="us-gaap_LossContingencyNatureDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_EscrowDepositDisbursementsRelatedToAcquisition" xlink:to="ssti_EscrowDepositDisbursementsRelatedToAcquisition_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_SouthAmericaMember" xlink:to="srt_SouthAmericaMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_TwoThousandSeventeenEquityIncentivePlanMember" xlink:to="ssti_TwoThousandSeventeenEquityIncentivePlanMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xlink:to="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_UmpquaCreditAgreementMember" xlink:to="ssti_UmpquaCreditAgreementMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" xlink:to="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment" xlink:to="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_DomesticFinancialInstitutionThreeMember" xlink:to="ssti_DomesticFinancialInstitutionThreeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfOperatingSegments" xlink:to="us-gaap_NumberOfOperatingSegments_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GeneralAndAdministrativeExpense" xlink:to="us-gaap_GeneralAndAdministrativeExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerDurationAxis" xlink:to="us-gaap_ContractWithCustomerDurationAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_BS" xlink:to="country_BS_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesAcquisitions" xlink:to="us-gaap_StockIssuedDuringPeriodSharesAcquisitions_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PrepaidSoftwareAndLicensesCurrent" xlink:to="ssti_PrepaidSoftwareAndLicensesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCharges" xlink:to="us-gaap_RestructuringCharges_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities" xlink:to="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeSeveranceMember" xlink:to="us-gaap_EmployeeSeveranceMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_AcquiredSoftwareTechnologyMember" xlink:to="ssti_AcquiredSoftwareTechnologyMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Depreciation" xlink:to="us-gaap_Depreciation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_OperatingExpenses_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpense" xlink:to="us-gaap_ResearchAndDevelopmentExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfRevenue" xlink:to="us-gaap_CostOfRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PerformanceBasedRestrictedStockUnitRSUMember" xlink:to="ssti_PerformanceBasedRestrictedStockUnitRSUMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareTextBlock" xlink:to="us-gaap_EarningsPerShareTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_SafepointeLLCMember" xlink:to="ssti_SafepointeLLCMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:to="us-gaap_RestructuringAndRelatedActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_CustomerTwoMember" xlink:to="ssti_CustomerTwoMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" xlink:to="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringCostAndReserveLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromStockOptionsExercised" xlink:to="us-gaap_ProceedsFromStockOptionsExercised_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:to="us-gaap_StockIssuedDuringPeriodValueAcquisitions_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_CustomerOneMember" xlink:to="ssti_CustomerOneMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCredit" xlink:to="us-gaap_LineOfCredit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable" xlink:to="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans" xlink:to="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_NumberOfCustomers" xlink:to="ssti_NumberOfCustomers_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" xlink:to="us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Revenues" xlink:to="us-gaap_Revenues_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IntellectualPropertyMember" xlink:to="us-gaap_IntellectualPropertyMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PSU-BasedPerformanceBonusPlanMember" xlink:to="ssti_PSU-BasedPerformanceBonusPlanMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PatentsMember" xlink:to="us-gaap_PatentsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_CustomerThreeMember" xlink:to="ssti_CustomerThreeMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_LetterOfCreditSubfacilityMember" xlink:to="ssti_LetterOfCreditSubfacilityMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember" xlink:to="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsRecurringMember" xlink:to="us-gaap_FairValueMeasurementsRecurringMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityExTransitionPeriod" xlink:to="dei_EntityExTransitionPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201613Member" xlink:to="us-gaap_AccountingStandardsUpdate201613Member_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingAndMarketingExpense" xlink:to="us-gaap_SellingAndMarketingExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_ShortTermDeposits" xlink:to="ssti_ShortTermDeposits_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PaymentForInvestmentInIntangibleAndOtherAssets" xlink:to="ssti_PaymentForInvestmentInIntangibleAndOtherAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_UnvestedRestrictedStockUnitsMember" xlink:to="ssti_UnvestedRestrictedStockUnitsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LinesOfCreditCurrent" xlink:to="us-gaap_LinesOfCreditCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpense" xlink:to="us-gaap_NonoperatingIncomeExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PercentageOfAssetsFairValueAdjustment" xlink:to="ssti_PercentageOfAssetsFairValueAdjustment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidInsurance" xlink:to="us-gaap_PrepaidInsurance_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_MajorCustomersAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:to="us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_DomesticFinancialInstitutionTwoMember" xlink:to="ssti_DomesticFinancialInstitutionTwoMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityExpirationDate1" xlink:to="us-gaap_LineOfCreditFacilityExpirationDate1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionAmountsOfTransaction" xlink:to="us-gaap_RelatedPartyTransactionAmountsOfTransaction_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProductionRelatedImpairmentsOrCharges" xlink:to="us-gaap_ProductionRelatedImpairmentsOrCharges_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCostsCurrent" xlink:to="us-gaap_DeferredCostsCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement" xlink:to="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" xlink:to="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionLineItems" xlink:to="us-gaap_RelatedPartyTransactionLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SubsequentEventsAbstract" xlink:to="us-gaap_SubsequentEventsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireProductiveAssets" xlink:to="us-gaap_PaymentsToAcquireProductiveAssets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockRepurchasedDuringPeriodValue" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" xlink:to="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates" xlink:to="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityInitiationDate1" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_BusinessCombinationsAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProvisionForLoanLossesExpensed" xlink:to="us-gaap_ProvisionForLoanLossesExpensed_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable" xlink:to="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:to="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:to="us-gaap_ComputerSoftwareIntangibleAssetMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract" xlink:to="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_ImpairmentOfPropertyAndEquipment" xlink:to="ssti_ImpairmentOfPropertyAndEquipment_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_LeaseTerminationMember" xlink:to="ssti_LeaseTerminationMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_ClassOfStockLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_NonoperatingIncomeExpenseAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_ScheduleOfGoodwillTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition" xlink:to="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_RevenueFromRelatedParty" xlink:to="ssti_RevenueFromRelatedParty_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NonUsMember" xlink:to="us-gaap_NonUsMember_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLinesOfCredit" xlink:to="us-gaap_RepaymentsOfLinesOfCredit_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RelatedPartyTransactionDomain" xlink:to="us-gaap_RelatedPartyTransactionDomain_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherLiabilitiesCurrent" xlink:to="us-gaap_OtherLiabilitiesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueLineItems_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLossAbstract" xlink:to="us-gaap_NetIncomeLossAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock" xlink:to="us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_CreditFacilityExtendedMaturityDate" xlink:to="ssti_CreditFacilityExtendedMaturityDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedProfessionalFeesCurrent" xlink:to="us-gaap_AccruedProfessionalFeesCurrent_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="us-gaap_ScheduleOfStockByClassTable_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember" xlink:to="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember_lbl"/>
        </link:labelLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityExTransitionPeriod" xlink:label="dei_EntityExTransitionPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentQuarterlyReport" xlink:label="dei_DocumentQuarterlyReport"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2025/dei-2025.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentType" order="49.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AmendmentFlag" order="50.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentPeriodEndDate" order="51.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalYearFocus" order="52.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentFiscalPeriodFocus" order="53.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_TradingSymbol" order="54.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityRegistrantName" order="55.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCentralIndexKey" order="56.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CurrentFiscalYearEndDate" order="57.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFilerCategory" order="58.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFileNumber" order="59.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityIncorporationStateCountryCode" order="60.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityTaxIdentificationNumber" order="61.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine1" order="62.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine2" order="63.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressCityOrTown" order="64.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressStateOrProvince" order="65.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressPostalZipCode" order="66.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CityAreaCode" order="67.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_LocalPhoneNumber" order="68.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCurrentReportingStatus" order="69.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntitySmallBusiness" order="70.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityEmergingGrowthCompany" order="71.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityShellCompany" order="72.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityExTransitionPeriod" order="73.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCommonStockSharesOutstanding" order="74.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityInteractiveDataCurrent" order="75.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_Security12bTitle" order="76.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_SecurityExchangeName" order="77.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentQuarterlyReport" order="78.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentTransitionReport" order="79.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:label="us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsAbstract" xlink:label="us-gaap_AssetsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountsReceivableAndContractAssetCurrent" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="us-gaap_LinesOfCreditCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_PreferredStockValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_AssetsAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_AssetsCurrentAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="ssti_AccountsReceivableAndContractAssetCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquityAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LinesOfCreditCurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_Goodwill" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_Liabilities" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsAbstract" xlink:to="us-gaap_Assets" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesAuthorized" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesIssued" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_PreferredStockSharesOutstanding" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesAuthorized" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesIssued" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_CommonStockSharesOutstanding" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpensesAbstract" xlink:label="us-gaap_OperatingExpensesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenueAbstract" xlink:label="us-gaap_CostOfRevenueAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpenseAbstract" xlink:label="us-gaap_NonoperatingIncomeExpenseAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:label="us-gaap_InterestIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ImpairmentOfPropertyAndEquipment" xlink:label="ssti_ImpairmentOfPropertyAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FairValueAdjustmentOfContingentConsideration" xlink:label="ssti_FairValueAdjustmentOfContingentConsideration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_SellingAndMarketingExpense" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_InterestIncomeExpenseNonoperatingNet" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_ResearchAndDevelopmentExpense" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="ssti_ImpairmentOfPropertyAndEquipment" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_CostOfRevenueAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_GeneralAndAdministrativeExpense" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CostOfRevenueAbstract" xlink:to="us-gaap_CostOfRevenue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_GrossProfit" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NonoperatingIncomeExpenseAbstract" xlink:to="us-gaap_NonoperatingIncomeExpense" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="ssti_FairValueAdjustmentOfContingentConsideration" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_OperatingExpensesAbstract" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OperatingExpensesAbstract" xlink:to="us-gaap_OperatingExpenses" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_OperatingIncomeLoss" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_NonoperatingIncomeExpenseAbstract" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_NetIncomeLoss" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_EarningsPerShareBasic" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_NetIncomeLoss" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:label="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" xlink:label="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodSharesAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity_15"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding_16"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueAcquisitions" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesAcquisitions" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" order="14" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity_15" order="15" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding_16" order="16" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:label="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset" xlink:label="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceInitialPublicOffering" xlink:label="us-gaap_ProceedsFromIssuanceInitialPublicOffering"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PaymentForInvestmentInIntangibleAndOtherAssets" xlink:label="ssti_PaymentForInvestmentInIntangibleAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductionRelatedImpairmentsOrCharges" xlink:label="us-gaap_ProductionRelatedImpairmentsOrCharges"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable" xlink:label="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities" xlink:label="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable" xlink:label="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForLoanLossesExpensed" xlink:label="us-gaap_ProvisionForLoanLossesExpensed"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_6"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_Depreciation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceInitialPublicOffering" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ProfitLoss" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="ssti_PaymentForInvestmentInIntangibleAndOtherAssets" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ProductionRelatedImpairmentsOrCharges" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromLinesOfCredit" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ProvisionForLoanLossesExpensed" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_6" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLinesOfCredit" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInOperatingCapitalAbstract" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusiness" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPolicies" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosures" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitions1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurements" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwill" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillDisclosureTextBlock" xlink:label="us-gaap_GoodwillDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_GoodwillDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNet1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_IntangibleAssetsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_IntangibleAssetsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" xlink:label="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_SupplementalBalanceSheetDisclosuresTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactions" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="us-gaap_RelatedPartyTransactionsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionsDisclosureTextBlock" xlink:label="us-gaap_RelatedPartyTransactionsDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsAbstract" xlink:to="us-gaap_RelatedPartyTransactionsDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuring" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:label="us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:label="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:to="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgram" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityAbstract" xlink:label="us-gaap_EquityAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:label="us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityAbstract" xlink:to="us-gaap_StockholdersEquityNoteDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShare" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareTextBlock" xlink:label="us-gaap_EarningsPerShareTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlans" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangements1" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReporting" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingDisclosureTextBlock" xlink:label="us-gaap_SegmentReportingDisclosureTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingDisclosureTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BasisOfAccountingPolicyPolicyTextBlock" xlink:label="us-gaap_BasisOfAccountingPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock" xlink:label="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock" xlink:label="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BasisOfAccountingPolicyPolicyTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConcentrationRiskCreditRisk" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:label="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock" xlink:label="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock" xlink:label="us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNoncurrentLiabilitiesTableTextBlock" xlink:label="us-gaap_OtherNoncurrentLiabilitiesTableTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_OtherNoncurrentLiabilitiesTableTextBlock" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansTables" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" xlink:label="us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessAndNatureOfOperationsLineItems" xlink:label="ssti_BusinessAndNatureOfOperationsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfCustomers" xlink:label="ssti_NumberOfCustomers"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessAndNatureOfOperationsTable" xlink:label="ssti_BusinessAndNatureOfOperationsTable"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember" xlink:label="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfAgencies" xlink:label="ssti_NumberOfAgencies"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfCitiesInWhichEntityOperates" xlink:label="ssti_NumberOfCitiesInWhichEntityOperates"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates" xlink:label="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfSubsidiary" xlink:label="ssti_NumberOfSubsidiary"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfCustomers" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract" xlink:to="ssti_BusinessAndNatureOfOperationsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_BusinessAndNatureOfOperationsTable" xlink:to="srt_RangeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfAgencies" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_BusinessAndNatureOfOperationsTable" xlink:to="srt_ProductOrServiceAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfCitiesInWhichEntityOperates" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_BusinessAndNatureOfOperationsTable" xlink:to="ssti_BusinessAndNatureOfOperationsLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfSubsidiary" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" order="6.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_US" xlink:label="country_US"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingStandardsUpdate201613Member" xlink:label="us-gaap_AccountingStandardsUpdate201613Member"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerOneMember" xlink:label="ssti_CustomerOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountingPoliciesLineItems" xlink:label="ssti_AccountingPoliciesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountingPoliciesTable" xlink:label="ssti_AccountingPoliciesTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionOneMember" xlink:label="ssti_DomesticFinancialInstitutionOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonUsMember" xlink:label="us-gaap_NonUsMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerTwoMember" xlink:label="ssti_CustomerTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfCustomers" xlink:label="ssti_NumberOfCustomers"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditConcentrationRiskMember" xlink:label="us-gaap_CreditConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionTwoMember" xlink:label="ssti_DomesticFinancialInstitutionTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerThreeMember" xlink:label="ssti_CustomerThreeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionThreeMember" xlink:label="ssti_DomesticFinancialInstitutionThreeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashFDICInsuredAmount" xlink:label="us-gaap_CashFDICInsuredAmount"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" xlink:label="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201613Member" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ssti_CustomerOneMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_AccountsReceivableMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ssti_DomesticFinancialInstitutionOneMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="ssti_AccountingPoliciesTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain" xlink:to="us-gaap_NonUsMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ssti_CustomerTwoMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="ssti_NumberOfCustomers" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesTable" xlink:to="srt_MajorCustomersAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CreditConcentrationRiskMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ssti_DomesticFinancialInstitutionTwoMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ssti_CustomerThreeMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ssti_DomesticFinancialInstitutionThreeMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_CashFDICInsuredAmount" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesTable" xlink:to="srt_CounterpartyNameAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesTable" xlink:to="srt_StatementGeographicalAxis" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesTable" xlink:to="ssti_AccountingPoliciesLineItems" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerDurationAxis" xlink:label="us-gaap_ContractWithCustomerDurationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerDurationDomain" xlink:label="us-gaap_ContractWithCustomerDurationDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RecognitionFromBeginningDeferredRevenueBalanceMember" xlink:label="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RecognitionFromNewBillingsOfDeferredRevenueMember" xlink:label="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress" xlink:label="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments" xlink:label="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ContractWithCustomerLiabilityForeignCurrencyImpact" xlink:label="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability_6"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ContractWithCustomerDurationAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ContractWithCustomerDurationDomain" xlink:to="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ContractWithCustomerDurationAxis" xlink:to="us-gaap_ContractWithCustomerDurationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ContractWithCustomerDurationDomain" xlink:to="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiability_6" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerAbstract" xlink:label="us-gaap_RevenueFromContractWithCustomerAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_US" xlink:label="country_US"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SubscriptionMaintenanceAndSupportServicesMember" xlink:label="ssti_SubscriptionMaintenanceAndSupportServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_ZA" xlink:label="country_ZA"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ProfessionalSoftwareDevelopmentServicesMember" xlink:label="ssti_ProfessionalSoftwareDevelopmentServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RevenueFromRelatedParty" xlink:label="ssti_RevenueFromRelatedParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_BS" xlink:label="country_BS"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SouthAmericaMember" xlink:label="srt_SouthAmericaMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_UY" xlink:label="country_UY"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="us-gaap_DisaggregationOfRevenueTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_StatementGeographicalAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ssti_SubscriptionMaintenanceAndSupportServicesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_Revenues" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_ZA" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ssti_ProfessionalSoftwareDevelopmentServicesMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ssti_RevenueFromRelatedParty" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_BS" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_DisaggregationOfRevenueLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_SouthAmericaMember" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_UY" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UmpquaCreditAgreementMember" xlink:label="ssti_UmpquaCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntellectualPropertyMember" xlink:label="us-gaap_IntellectualPropertyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IndemnificationGuaranteeMember" xlink:label="us-gaap_IndemnificationGuaranteeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EscrowDepositDisbursementsRelatedToAcquisition" xlink:label="ssti_EscrowDepositDisbursementsRelatedToAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodSharesAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition" xlink:label="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfDiscountedCashFlows" xlink:label="ssti_PercentageOfDiscountedCashFlows"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationConsiderationPaidInKind" xlink:label="ssti_BusinessCombinationConsiderationPaidInKind"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1" xlink:label="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireProductiveAssets" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="ssti_UmpquaCreditAgreementMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_IntellectualPropertyMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="us-gaap_IndemnificationGuaranteeMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TechnologyBasedIntangibleAssetsMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_IncomeStatementLocationAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_EscrowDepositDisbursementsRelatedToAcquisition" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="srt_RangeAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesAcquisitions" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" order="6.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_PercentageOfDiscountedCashFlows" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationConsiderationPaidInKind" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" order="14" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_LineOfCredit" order="15" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" order="16" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" order="17" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" order="18" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireProductiveAssets" order="19" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable" order="20" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" order="21" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationsAbstract" xlink:label="us-gaap_BusinessCombinationsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:label="us-gaap_ComputerSoftwareIntangibleAssetMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationsAbstract" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_ComputerSoftwareIntangibleAssetMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_Goodwill" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNoncurrentLiabilitiesMember" xlink:label="us-gaap_OtherNoncurrentLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TechnologicSolutionsLlcMember" xlink:label="ssti_TechnologicSolutionsLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueDisclosuresAbstract" xlink:label="us-gaap_FairValueDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccruedLiabilitiesAndOtherLiabilitiesMember" xlink:label="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure" xlink:label="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfAssetsFairValueAdjustment" xlink:label="ssti_PercentageOfAssetsFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfRevenueVolatility" xlink:label="ssti_PercentageOfRevenueVolatility"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MoneyMarketFundsAtCarryingValue" xlink:label="us-gaap_MoneyMarketFundsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherNoncurrentLiabilitiesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_TechnologicSolutionsLlcMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueDisclosuresAbstract" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="ssti_PercentageOfAssetsFairValueAdjustment" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="ssti_PercentageOfRevenueVolatility" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_BalanceSheetLocationAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_MoneyMarketFundsAtCarryingValue" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:label="us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_3"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue_3" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill_2"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_Goodwill" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfGoodwillTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_BusinessAcquisitionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_GoodwillLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_Goodwill_2" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AcquiredSoftwareTechnologyMember" xlink:label="ssti_AcquiredSoftwareTechnologyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PatentsAndIntellectualPropertyMember" xlink:label="ssti_PatentsAndIntellectualPropertyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PatentsMember" xlink:label="us-gaap_PatentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ssti_AcquiredSoftwareTechnologyMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ssti_PatentsAndIntellectualPropertyMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_PatentsMember" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xlink:label="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsLineItems" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:label="us-gaap_BalanceSheetRelatedDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FinancingReceivableAllowanceForCreditLossesAdjustment" xlink:label="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountsReceivableAndContractAssetCurrent" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetRelatedDisclosuresAbstract" xlink:to="ssti_AccountsReceivableAndContractAssetCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCostsCurrent" xlink:label="us-gaap_DeferredCostsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PrepaidSoftwareAndLicensesCurrent" xlink:label="ssti_PrepaidSoftwareAndLicensesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidInsurance" xlink:label="us-gaap_PrepaidInsurance"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ShortTermDeposits" xlink:label="ssti_ShortTermDeposits"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherPrepaidExpenseCurrent" xlink:label="us-gaap_OtherPrepaidExpenseCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="us-gaap_DeferredCostsCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="ssti_PrepaidSoftwareAndLicensesCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="us-gaap_PrepaidInsurance" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="ssti_ShortTermDeposits" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="us-gaap_OtherPrepaidExpenseCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="us-gaap_OtherAssetsCurrent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrentDisclosureAbstract" xlink:label="us-gaap_OtherAssetsNoncurrentDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCosts" xlink:label="us-gaap_DeferredCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract" xlink:label="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EscrowClaimReceivable" xlink:label="ssti_EscrowClaimReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsNoncurrentDisclosureAbstract" xlink:to="us-gaap_DeferredCosts" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract" xlink:to="us-gaap_OtherAssetsNoncurrentDisclosureAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsNoncurrentDisclosureAbstract" xlink:to="ssti_EscrowClaimReceivable" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsNoncurrentDisclosureAbstract" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherAssetsNoncurrentDisclosureAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedEmployeeBenefitsCurrent" xlink:label="us-gaap_AccruedEmployeeBenefitsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesAndExciseTaxPayableCurrent" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="us-gaap_AccruedEmployeeBenefitsCurrent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="us-gaap_AccruedProfessionalFeesCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="us-gaap_SalesAndExciseTaxPayableCurrent" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="us-gaap_OtherLiabilitiesCurrent" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAxis" xlink:label="us-gaap_RelatedPartyTransactionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionDomain" xlink:label="us-gaap_RelatedPartyTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionsAbstract" xlink:label="us-gaap_RelatedPartyTransactionsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:label="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionLineItems" xlink:label="us-gaap_RelatedPartyTransactionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SoundthinkingMember" xlink:label="ssti_SoundthinkingMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAmountsOfTransaction" xlink:label="us-gaap_RelatedPartyTransactionAmountsOfTransaction"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionAxis" xlink:to="us-gaap_RelatedPartyTransactionDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionsAbstract" xlink:to="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="us-gaap_RelatedPartyTransactionAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionLineItems" xlink:to="us-gaap_Revenues" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionDomain" xlink:to="ssti_SoundthinkingMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="us-gaap_RelatedPartyTransactionLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RelatedPartyTransactionLineItems" xlink:to="us-gaap_RelatedPartyTransactionAmountsOfTransaction" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:label="us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:label="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCostAndReserveLineItems" xlink:label="us-gaap_RestructuringCostAndReserveLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:label="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LeaseTerminationMember" xlink:label="ssti_LeaseTerminationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:label="us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringReserveCurrent" xlink:label="us-gaap_RestructuringReserveCurrent"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_EmployeeSeveranceMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:to="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="ssti_LeaseTerminationMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringCharges" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="us-gaap_BalanceSheetLocationAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="us-gaap_RestructuringCostAndReserveLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringReserveCurrent" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ShareRepurchaseProgramAxis" xlink:label="srt_ShareRepurchaseProgramAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ShareRepurchaseProgramDomain" xlink:label="srt_ShareRepurchaseProgramDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FeaturesOfConvertiblePreferredStockAbstract" xlink:label="us-gaap_FeaturesOfConvertiblePreferredStockAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_StockRepurchaseProgramMember" xlink:label="ssti_StockRepurchaseProgramMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ShareRepurchaseProgramAxis" xlink:to="srt_ShareRepurchaseProgramDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FeaturesOfConvertiblePreferredStockAbstract" xlink:to="us-gaap_ScheduleOfStockByClassTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_ShareRepurchaseProgramDomain" xlink:to="ssti_StockRepurchaseProgramMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="srt_ShareRepurchaseProgramAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="us-gaap_ClassOfStockLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLossAbstract" xlink:label="us-gaap_NetIncomeLossAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_NetIncomeLossAbstract" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetIncomeLossAbstract" xlink:to="us-gaap_NetIncomeLoss" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UnvestedRestrictedStockUnitsMember" xlink:label="ssti_UnvestedRestrictedStockUnitsMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UnvestedPerformanceStockUnitsMember" xlink:label="ssti_UnvestedPerformanceStockUnitsMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="ssti_UnvestedRestrictedStockUnitsMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="ssti_UnvestedPerformanceStockUnitsMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareParentheticalDe" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement" xlink:label="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_4"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_4" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_4" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember" xlink:label="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TwoThousandSeventeenEquityIncentivePlanMember" xlink:label="ssti_TwoThousandSeventeenEquityIncentivePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PSU-BasedPerformanceBonusPlanMember" xlink:label="ssti_PSU-BasedPerformanceBonusPlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EmployeeStockPurchasePlanOfferingPeriod" xlink:label="ssti_EmployeeStockPurchasePlanOfferingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CommonStockFairMarketValuePercentage" xlink:label="ssti_CommonStockFairMarketValuePercentage"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PerformanceBasedRestrictedStockUnitRSUMember" xlink:label="ssti_PerformanceBasedRestrictedStockUnitRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" xlink:label="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" xlink:label="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement" xlink:label="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_PlanNameAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain" xlink:to="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_StatementEquityComponentsAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain" xlink:to="ssti_TwoThousandSeventeenEquityIncentivePlanMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PlanNameDomain" xlink:to="ssti_PSU-BasedPerformanceBonusPlanMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_SubsequentEventTypeAxis" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_EmployeeStockPurchasePlanOfferingPeriod" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="4.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_CommonStockFairMarketValuePercentage" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ssti_PerformanceBasedRestrictedStockUnitRSUMember" order="5.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" order="11" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" order="12" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="13" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="14" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" order="15" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" order="16" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" order="17" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement" order="18" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_9"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" order="2.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" order="3.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_9" order="9" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" order="10" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract" xlink:label="us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="us-gaap_IncomeStatementLocationAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtDisclosureAbstract" xlink:label="us-gaap_DebtDisclosureAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UmpquaCreditAgreementMember" xlink:label="ssti_UmpquaCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LetterOfCreditSubfacilityMember" xlink:label="ssti_LetterOfCreditSubfacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityExpirationDate1" xlink:label="us-gaap_LineOfCreditFacilityExpirationDate1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CreditFacilityExtendedMaturityDate" xlink:label="ssti_CreditFacilityExtendedMaturityDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LineOfCreditWeightedAverageInterestRate" xlink:label="ssti_LineOfCreditWeightedAverageInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtDisclosureAbstract" xlink:to="us-gaap_DebtInstrumentTable" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="ssti_UmpquaCreditAgreementMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ssti_LetterOfCreditSubfacilityMember" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityExpirationDate1" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_DebtInstrumentLineItems" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="ssti_CreditFacilityExtendedMaturityDate" order="3" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" order="4" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCredit" order="5" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_InterestExpense" order="6" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="ssti_LineOfCreditWeightedAverageInterestRate" order="7" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtWeightedAverageInterestRate" order="8" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended"/>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReportingAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingAbstract" xlink:label="us-gaap_SegmentReportingAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" xlink:label="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription" xlink:label="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_NumberOfOperatingSegments" order="0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration" order="1" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SegmentReportingAbstract" xlink:to="us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription" order="2" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
        </link:presentationLink>
        <link:presentationLink xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" xlink:title="presentationLink" xlink:type="extended"/>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" xlink:label="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" xlink:label="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" xlink:label="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodValueAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodValueAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodSharesAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueAcquisitions" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesAcquisitions" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="14" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:label="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessAndNatureOfOperationsLineItems" xlink:label="ssti_BusinessAndNatureOfOperationsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessAndNatureOfOperationsTable" xlink:label="ssti_BusinessAndNatureOfOperationsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfCustomers" xlink:label="ssti_NumberOfCustomers"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember" xlink:label="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember_default"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfAgencies" xlink:label="ssti_NumberOfAgencies"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfCitiesInWhichEntityOperates" xlink:label="ssti_NumberOfCitiesInWhichEntityOperates"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates" xlink:label="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfSubsidiary" xlink:label="ssti_NumberOfSubsidiary"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_BusinessAndNatureOfOperationsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfCustomers" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ssti_BusinessAndNatureOfOperationsTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfAgencies" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ssti_BusinessAndNatureOfOperationsTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfCitiesInWhichEntityOperates" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_BusinessAndNatureOfOperationsLineItems" xlink:to="ssti_NumberOfSubsidiary" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountingPoliciesLineItems" xlink:label="ssti_AccountingPoliciesLineItems"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountingPoliciesTable" xlink:label="ssti_AccountingPoliciesTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_US" xlink:label="country_US"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountingStandardsUpdate201613Member" xlink:label="us-gaap_AccountingStandardsUpdate201613Member"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerOneMember" xlink:label="ssti_CustomerOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableMember" xlink:label="us-gaap_AccountsReceivableMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MajorCustomersAxis" xlink:label="srt_MajorCustomersAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_NameOfMajorCustomerDomain" xlink:label="srt_NameOfMajorCustomerDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionOneMember" xlink:label="ssti_DomesticFinancialInstitutionOneMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonUsMember" xlink:label="us-gaap_NonUsMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerTwoMember" xlink:label="ssti_CustomerTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfCustomers" xlink:label="ssti_NumberOfCustomers"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditConcentrationRiskMember" xlink:label="us-gaap_CreditConcentrationRiskMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionTwoMember" xlink:label="ssti_DomesticFinancialInstitutionTwoMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CustomerThreeMember" xlink:label="ssti_CustomerThreeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_DomesticFinancialInstitutionThreeMember" xlink:label="ssti_DomesticFinancialInstitutionThreeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashFDICInsuredAmount" xlink:label="us-gaap_CashFDICInsuredAmount"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" xlink:label="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect" xlink:label="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="ssti_AccountingPoliciesTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201613Member" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ssti_CustomerOneMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ssti_AccountingPoliciesTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_AccountsReceivableMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_MajorCustomersAxis" xlink:to="srt_NameOfMajorCustomerDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ssti_DomesticFinancialInstitutionOneMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="us-gaap_NonUsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ssti_CustomerTwoMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="ssti_NumberOfCustomers" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ssti_AccountingPoliciesTable" xlink:to="srt_MajorCustomersAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CreditConcentrationRiskMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ssti_DomesticFinancialInstitutionTwoMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_NameOfMajorCustomerDomain" xlink:to="ssti_CustomerThreeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ssti_AccountingPoliciesTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="ssti_DomesticFinancialInstitutionThreeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_CashFDICInsuredAmount" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ssti_AccountingPoliciesTable" xlink:to="srt_CounterpartyNameAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ssti_AccountingPoliciesTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="ssti_AccountingPoliciesTable" xlink:to="srt_StatementGeographicalAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="ssti_AccountingPoliciesLineItems" xlink:to="us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerDurationAxis" xlink:label="us-gaap_ContractWithCustomerDurationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerDurationDomain" xlink:label="us-gaap_ContractWithCustomerDurationDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RecognitionFromBeginningDeferredRevenueBalanceMember" xlink:label="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerDurationDomain" xlink:label="us-gaap_ContractWithCustomerDurationDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiability" xlink:label="us-gaap_ContractWithCustomerLiability"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RecognitionFromNewBillingsOfDeferredRevenueMember" xlink:label="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress" xlink:label="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments" xlink:label="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ContractWithCustomerLiabilityForeignCurrencyImpact" xlink:label="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="us-gaap_ContractWithCustomerDurationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ContractWithCustomerDurationDomain" xlink:to="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ContractWithCustomerDurationAxis" xlink:to="us-gaap_ContractWithCustomerDurationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ContractWithCustomerDurationAxis" xlink:to="us-gaap_ContractWithCustomerDurationDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ContractWithCustomerDurationDomain" xlink:to="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueLineItems" xlink:label="us-gaap_DisaggregationOfRevenueLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DisaggregationOfRevenueTable" xlink:label="us-gaap_DisaggregationOfRevenueTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductOrServiceAxis" xlink:label="srt_ProductOrServiceAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ProductsAndServicesDomain" xlink:label="srt_ProductsAndServicesDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_US" xlink:label="country_US"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SubscriptionMaintenanceAndSupportServicesMember" xlink:label="ssti_SubscriptionMaintenanceAndSupportServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_ZA" xlink:label="country_ZA"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ProfessionalSoftwareDevelopmentServicesMember" xlink:label="ssti_ProfessionalSoftwareDevelopmentServicesMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_RevenueFromRelatedParty" xlink:label="ssti_RevenueFromRelatedParty"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_BS" xlink:label="country_BS"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_SouthAmericaMember" xlink:label="srt_SouthAmericaMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/country/2025/country-2025.xsd#country_UY" xlink:label="country_UY"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_DisaggregationOfRevenueTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ProductOrServiceAxis" xlink:to="srt_ProductsAndServicesDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_StatementGeographicalAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ssti_SubscriptionMaintenanceAndSupportServicesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="us-gaap_Revenues" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_ZA" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DisaggregationOfRevenueTable" xlink:to="srt_ProductOrServiceAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ProductsAndServicesDomain" xlink:to="ssti_ProfessionalSoftwareDevelopmentServicesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisaggregationOfRevenueLineItems" xlink:to="ssti_RevenueFromRelatedParty" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_BS" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_SouthAmericaMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_UY" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UmpquaCreditAgreementMember" xlink:label="ssti_UmpquaCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IntellectualPropertyMember" xlink:label="us-gaap_IntellectualPropertyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeMember" xlink:label="srt_RangeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IndemnificationGuaranteeMember" xlink:label="us-gaap_IndemnificationGuaranteeMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireBusinessesGross" xlink:label="us-gaap_PaymentsToAcquireBusinessesGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TechnologyBasedIntangibleAssetsMember" xlink:label="us-gaap_TechnologyBasedIntangibleAssetsMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EscrowDepositDisbursementsRelatedToAcquisition" xlink:label="ssti_EscrowDepositDisbursementsRelatedToAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesAcquisitions" xlink:label="us-gaap_StockIssuedDuringPeriodSharesAcquisitions"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition" xlink:label="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfDiscountedCashFlows" xlink:label="ssti_PercentageOfDiscountedCashFlows"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationConsiderationPaidInKind" xlink:label="ssti_BusinessCombinationConsiderationPaidInKind"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1" xlink:label="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" xlink:label="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationContingentConsiderationLiability" xlink:label="us-gaap_BusinessCombinationContingentConsiderationLiability"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:label="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquireProductiveAssets" xlink:label="us-gaap_PaymentsToAcquireProductiveAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:label="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="ssti_UmpquaCreditAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_IntellectualPropertyMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="us-gaap_IndemnificationGuaranteeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireBusinessesGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TechnologyBasedIntangibleAssetsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_IncomeStatementLocationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_EscrowDepositDisbursementsRelatedToAcquisition" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="srt_RangeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesAcquisitions" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_PercentageOfDiscountedCashFlows" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationConsiderationPaidInKind" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="14" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationContingentConsiderationLiability" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="15" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_LineOfCredit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="16" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="17" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="18" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="19" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_PaymentsToAcquireProductiveAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="20" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="21" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionLineItems" xlink:label="us-gaap_BusinessAcquisitionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComputerSoftwareIntangibleAssetMember" xlink:label="us-gaap_ComputerSoftwareIntangibleAssetMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_ComputerSoftwareIntangibleAssetMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_Goodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionLineItems" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNoncurrentLiabilitiesMember" xlink:label="us-gaap_OtherNoncurrentLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TechnologicSolutionsLlcMember" xlink:label="ssti_TechnologicSolutionsLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccruedLiabilitiesAndOtherLiabilitiesMember" xlink:label="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure" xlink:label="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfAssetsFairValueAdjustment" xlink:label="ssti_PercentageOfAssetsFairValueAdjustment"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PercentageOfRevenueVolatility" xlink:label="ssti_PercentageOfRevenueVolatility"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_MoneyMarketFundsAtCarryingValue" xlink:label="us-gaap_MoneyMarketFundsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherNoncurrentLiabilitiesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_TechnologicSolutionsLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="ssti_PercentageOfAssetsFairValueAdjustment" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="ssti_PercentageOfRevenueVolatility" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_BalanceSheetLocationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_MoneyMarketFundsAtCarryingValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:label="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementFrequencyDomain" xlink:label="us-gaap_FairValueMeasurementFrequencyDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementsRecurringMember" xlink:label="us-gaap_FairValueMeasurementsRecurringMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueByMeasurementFrequencyAxis" xlink:label="us-gaap_FairValueByMeasurementFrequencyAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" xlink:label="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="us-gaap_FairValueMeasurementsRecurringMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="us-gaap_FairValueMeasurementFrequencyDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByMeasurementFrequencyAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems" xlink:to="us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillLineItems" xlink:label="us-gaap_GoodwillLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfGoodwillTable" xlink:label="us-gaap_ScheduleOfGoodwillTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ForensicLogicLlcMember" xlink:label="ssti_ForensicLogicLlcMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SafepointeLLCMember" xlink:label="ssti_SafepointeLLCMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_ScheduleOfGoodwillTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_ForensicLogicLlcMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_Goodwill" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfGoodwillTable" xlink:to="us-gaap_BusinessAcquisitionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="ssti_SafepointeLLCMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_GoodwillLineItems" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AcquiredSoftwareTechnologyMember" xlink:label="ssti_AcquiredSoftwareTechnologyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PatentsAndIntellectualPropertyMember" xlink:label="ssti_PatentsAndIntellectualPropertyMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PatentsMember" xlink:label="us-gaap_PatentsMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ssti_AcquiredSoftwareTechnologyMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="ssti_PatentsAndIntellectualPropertyMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_PatentsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:label="us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xlink:label="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionLineItems" xlink:label="us-gaap_RelatedPartyTransactionLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:label="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAxis" xlink:label="us-gaap_RelatedPartyTransactionAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionDomain" xlink:label="us-gaap_RelatedPartyTransactionDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionDomain" xlink:label="us-gaap_RelatedPartyTransactionDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Revenues" xlink:label="us-gaap_Revenues"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SoundthinkingMember" xlink:label="ssti_SoundthinkingMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RelatedPartyTransactionAmountsOfTransaction" xlink:label="us-gaap_RelatedPartyTransactionAmountsOfTransaction"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_RelatedPartyTransactionLineItems" xlink:to="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RelatedPartyTransactionAxis" xlink:to="us-gaap_RelatedPartyTransactionDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RelatedPartyTransactionAxis" xlink:to="us-gaap_RelatedPartyTransactionDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable" xlink:to="us-gaap_RelatedPartyTransactionAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyTransactionLineItems" xlink:to="us-gaap_Revenues" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyTransactionDomain" xlink:to="ssti_SoundthinkingMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RelatedPartyTransactionLineItems" xlink:to="us-gaap_RelatedPartyTransactionAmountsOfTransaction" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCostAndReserveLineItems" xlink:label="us-gaap_RestructuringCostAndReserveLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:label="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember" xlink:label="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" xlink:label="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LeaseTerminationMember" xlink:label="ssti_LeaseTerminationMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" xlink:label="us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestructuringReserveCurrent" xlink:label="us-gaap_RestructuringReserveCurrent"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_EmployeeSeveranceMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="ssti_LeaseTerminationMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringCharges" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="us-gaap_BalanceSheetLocationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RestructuringCostAndReserveLineItems" xlink:to="us-gaap_RestructuringReserveCurrent" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ClassOfStockLineItems" xlink:label="us-gaap_ClassOfStockLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfStockByClassTable" xlink:label="us-gaap_ScheduleOfStockByClassTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ShareRepurchaseProgramAxis" xlink:label="srt_ShareRepurchaseProgramAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ShareRepurchaseProgramDomain" xlink:label="srt_ShareRepurchaseProgramDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd#srt_ShareRepurchaseProgramDomain" xlink:label="srt_ShareRepurchaseProgramDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_StockRepurchaseProgramMember" xlink:label="ssti_StockRepurchaseProgramMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodShares" xlink:label="us-gaap_StockRepurchasedDuringPeriodShares"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_TreasuryStockAcquiredAverageCostPerShare" xlink:label="us-gaap_TreasuryStockAcquiredAverageCostPerShare"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockRepurchasedDuringPeriodValue" xlink:label="us-gaap_StockRepurchasedDuringPeriodValue"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_ScheduleOfStockByClassTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_ShareRepurchaseProgramAxis" xlink:to="srt_ShareRepurchaseProgramDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_ShareRepurchaseProgramAxis" xlink:to="srt_ShareRepurchaseProgramDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_ShareRepurchaseProgramDomain" xlink:to="ssti_StockRepurchaseProgramMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodShares" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfStockByClassTable" xlink:to="srt_ShareRepurchaseProgramAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_TreasuryStockAcquiredAverageCostPerShare" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ClassOfStockLineItems" xlink:to="us-gaap_StockRepurchasedDuringPeriodValue" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:label="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesNameDomain" xlink:label="us-gaap_AntidilutiveSecuritiesNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UnvestedRestrictedStockUnitsMember" xlink:label="ssti_UnvestedRestrictedStockUnitsMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UnvestedPerformanceStockUnitsMember" xlink:label="ssti_UnvestedPerformanceStockUnitsMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="us-gaap_AntidilutiveSecuritiesNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="ssti_UnvestedRestrictedStockUnitsMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="ssti_UnvestedPerformanceStockUnitsMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameAxis" xlink:label="us-gaap_PlanNameAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PlanNameDomain" xlink:label="us-gaap_PlanNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventMember" xlink:label="us-gaap_SubsequentEventMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember" xlink:label="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeAxis" xlink:label="us-gaap_SubsequentEventTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SubsequentEventTypeDomain" xlink:label="us-gaap_SubsequentEventTypeDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_TwoThousandSeventeenEquityIncentivePlanMember" xlink:label="ssti_TwoThousandSeventeenEquityIncentivePlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PerformanceBasedRestrictedStockUnitRSUMember" xlink:label="ssti_PerformanceBasedRestrictedStockUnitRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PSU-BasedPerformanceBonusPlanMember" xlink:label="ssti_PSU-BasedPerformanceBonusPlanMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EmployeeStockPurchasePlanOfferingPeriod" xlink:label="ssti_EmployeeStockPurchasePlanOfferingPeriod"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CommonStockFairMarketValuePercentage" xlink:label="ssti_CommonStockFairMarketValuePercentage"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" xlink:label="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" xlink:label="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" xlink:label="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement" xlink:label="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PlanNameAxis" xlink:to="us-gaap_PlanNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SubsequentEventTypeDomain" xlink:to="us-gaap_SubsequentEventMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_PlanNameAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_SubsequentEventTypeAxis" xlink:to="us-gaap_SubsequentEventTypeDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_StatementEquityComponentsAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ssti_TwoThousandSeventeenEquityIncentivePlanMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="ssti_PerformanceBasedRestrictedStockUnitRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PlanNameDomain" xlink:to="ssti_PSU-BasedPerformanceBonusPlanMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_SubsequentEventTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_EmployeeStockPurchasePlanOfferingPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_CommonStockFairMarketValuePercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="9" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="11" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="12" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="13" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="14" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="15" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="16" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="17" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="18" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:label="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="us-gaap_AwardTypeAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="10" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpenseMember" xlink:label="us-gaap_SellingAndMarketingExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpenseMember" xlink:label="us-gaap_ResearchAndDevelopmentExpenseMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpenseMember" xlink:label="us-gaap_GeneralAndAdministrativeExpenseMember"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="us-gaap_IncomeStatementLocationAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingAndMarketingExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_ResearchAndDevelopmentExpenseMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_GeneralAndAdministrativeExpenseMember" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentLineItems" xlink:label="us-gaap_DebtInstrumentLineItems"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtInstrumentTable" xlink:label="us-gaap_DebtInstrumentTable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityInitiationDate1" xlink:label="us-gaap_LineOfCreditFacilityInitiationDate1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_UmpquaCreditAgreementMember" xlink:label="ssti_UmpquaCreditAgreementMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain_default"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LetterOfCreditSubfacilityMember" xlink:label="ssti_LetterOfCreditSubfacilityMember"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityExpirationDate1" xlink:label="us-gaap_LineOfCreditFacilityExpirationDate1"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_CreditFacilityExtendedMaturityDate" xlink:label="ssti_CreditFacilityExtendedMaturityDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_LineOfCreditWeightedAverageInterestRate" xlink:label="ssti_LineOfCreditWeightedAverageInterestRate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtInstrumentTable" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityInitiationDate1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_CreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="ssti_UmpquaCreditAgreementMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain_default" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="0" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_DebtInstrumentTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="1" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="ssti_LetterOfCreditSubfacilityMember" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="2" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityExpirationDate1" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="3" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="ssti_CreditFacilityExtendedMaturityDate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="4" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="5" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_LineOfCredit" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="6" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_InterestExpense" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="7" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="ssti_LineOfCreditWeightedAverageInterestRate" priority="2" use="optional"/>
          <link:definitionArc xlink:type="arc" order="8" xbrldt:closed="false" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentLineItems" xlink:to="us-gaap_DebtWeightedAverageInterestRate" priority="2" use="optional"/>
        </link:definitionLink>
        <link:definitionLink xlink:type="extended" xlink:role="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense"/>
        </link:definitionLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_PreferredStockValue" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LinesOfCreditCurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_CommonStockValue" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="ssti_AccountsReceivableAndContractAssetCurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_ContractWithCustomerLiabilityNoncurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesAndOtherLiabilities" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent" order="5" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_LinesOfCreditCurrent" xlink:label="us-gaap_LinesOfCreditCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountsReceivableAndContractAssetCurrent" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityNoncurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_OperatingIncomeLoss" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_SellingAndMarketingExpense" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CostOfRevenue" xlink:to="us-gaap_CostOfGoodsAndServicesSold" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense" xlink:to="us-gaap_InterestIncomeExpenseNonoperatingNet" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GrossProfit" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfRevenue" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="us-gaap_NonoperatingIncomeExpense" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_ResearchAndDevelopmentExpense" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CostOfRevenue" xlink:to="ssti_ImpairmentOfPropertyAndEquipment" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingExpenses" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="us-gaap_GeneralAndAdministrativeExpense" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OperatingExpenses" xlink:to="ssti_FairValueAdjustmentOfContingentConsideration" order="3" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingExpenses" xlink:label="us-gaap_OperatingExpenses"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SellingAndMarketingExpense" xlink:label="us-gaap_SellingAndMarketingExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfRevenue" xlink:label="us-gaap_CostOfRevenue"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NonoperatingIncomeExpense" xlink:label="us-gaap_NonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_InterestIncomeExpenseNonoperatingNet" xlink:label="us-gaap_InterestIncomeExpenseNonoperatingNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ResearchAndDevelopmentExpense" xlink:label="us-gaap_ResearchAndDevelopmentExpense"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ImpairmentOfPropertyAndEquipment" xlink:label="ssti_ImpairmentOfPropertyAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GeneralAndAdministrativeExpense" xlink:label="us-gaap_GeneralAndAdministrativeExpense"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FairValueAdjustmentOfContingentConsideration" xlink:label="ssti_FairValueAdjustmentOfContingentConsideration"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_NetIncomeLoss" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" order="1" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ProfitLoss" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" order="0" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceInitialPublicOffering" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_Depreciation" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="ssti_PaymentForInvestmentInIntangibleAndOtherAssets" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" order="1" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AmortizationOfIntangibleAssets" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ProductionRelatedImpairmentsOrCharges" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromStockOptionsExercised" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLinesOfCredit" order="4" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromLinesOfCredit" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" order="6" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans" order="6" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" order="7" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsForRepurchaseOfCommonStock" order="8" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ProvisionForLoanLossesExpensed" order="9" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset" order="12" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" order="13" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" order="14" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" order="15" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerLiability" order="16" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProfitLoss" xlink:label="us-gaap_ProfitLoss"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceInitialPublicOffering" xlink:label="us-gaap_ProceedsFromIssuanceInitialPublicOffering"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Depreciation" xlink:label="us-gaap_Depreciation"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PaymentForInvestmentInIntangibleAndOtherAssets" xlink:label="ssti_PaymentForInvestmentInIntangibleAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities" xlink:label="us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProductionRelatedImpairmentsOrCharges" xlink:label="us-gaap_ProductionRelatedImpairmentsOrCharges"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromStockOptionsExercised" xlink:label="us-gaap_ProceedsFromStockOptionsExercised"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1" xlink:label="us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans" xlink:label="us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:label="us-gaap_PaymentsForRepurchaseOfCommonStock"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ProvisionForLoanLossesExpensed" xlink:label="us-gaap_ProvisionForLoanLossesExpensed"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset" xlink:label="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_Goodwill" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" order="6" weight="-1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" order="7" weight="-1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" xlink:label="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" order="1" weight="-1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" order="5" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" xlink:label="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ssti_AccountsReceivableAndContractAssetCurrent" xlink:to="us-gaap_AccountsReceivableNetCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ssti_AccountsReceivableAndContractAssetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="ssti_AccountsReceivableAndContractAssetCurrent" xlink:to="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment" order="2" weight="-1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_AccountsReceivableAndContractAssetCurrent" xlink:label="ssti_AccountsReceivableAndContractAssetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccountsReceivableNetCurrent" xlink:label="us-gaap_AccountsReceivableNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_FinancingReceivableAllowanceForCreditLossesAdjustment" xlink:label="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="ssti_PrepaidSoftwareAndLicensesCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidInsurance" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_DeferredCostsCurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_OtherPrepaidExpenseCurrent" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="ssti_ShortTermDeposits" order="5" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_OtherAssetsCurrent" order="6" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_PrepaidSoftwareAndLicensesCurrent" xlink:label="ssti_PrepaidSoftwareAndLicensesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_PrepaidInsurance" xlink:label="us-gaap_PrepaidInsurance"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCostsCurrent" xlink:label="us-gaap_DeferredCostsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherPrepaidExpenseCurrent" xlink:label="us-gaap_OtherPrepaidExpenseCurrent"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_ShortTermDeposits" xlink:label="ssti_ShortTermDeposits"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsCurrent" xlink:label="us-gaap_OtherAssetsCurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_DeferredCosts" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="ssti_EscrowClaimReceivable" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsMiscellaneousNoncurrent" order="2" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_DeferredCosts" xlink:label="us-gaap_DeferredCosts"/>
          <link:loc xlink:type="locator" xlink:href="ssti-20250630.xsd#ssti_EscrowClaimReceivable" xlink:label="ssti_EscrowClaimReceivable"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherAssetsMiscellaneousNoncurrent" xlink:label="us-gaap_OtherAssetsMiscellaneousNoncurrent"/>
        </link:calculationLink>
        <link:calculationLink xlink:type="extended" xlink:role="http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails">
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedEmployeeBenefitsCurrent" order="0" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" order="1" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedProfessionalFeesCurrent" order="2" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_SalesAndExciseTaxPayableCurrent" order="3" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_AccruedIncomeTaxesCurrent" order="4" weight="1" use="optional"/>
          <link:calculationArc xlink:type="arc" xlink:arcrole="https://xbrl.org/2023/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:to="us-gaap_OtherLiabilitiesCurrent" order="5" weight="1" use="optional"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedLiabilitiesAndOtherLiabilities" xlink:label="us-gaap_AccruedLiabilitiesAndOtherLiabilities"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedEmployeeBenefitsCurrent" xlink:label="us-gaap_AccruedEmployeeBenefitsCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedProfessionalFeesCurrent" xlink:label="us-gaap_AccruedProfessionalFeesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_SalesAndExciseTaxPayableCurrent" xlink:label="us-gaap_SalesAndExciseTaxPayableCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_AccruedIncomeTaxesCurrent" xlink:label="us-gaap_AccruedIncomeTaxesCurrent"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd#us-gaap_OtherLiabilitiesCurrent" xlink:label="us-gaap_OtherLiabilitiesCurrent"/>
        </link:calculationLink>
      </link:linkbase>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element id="ssti_UmpquaCreditAgreementMember" name="UmpquaCreditAgreementMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" name="SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate" type="xbrli:dateItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract" name="AccruedExpensesAndOtherCurrentLiabilitiesAbstract" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_NumberOfCitiesInWhichEntityOperates" name="NumberOfCitiesInWhichEntityOperates" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_ImpairmentOfPropertyAndEquipment" name="ImpairmentOfPropertyAndEquipment" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_RecognitionFromNewBillingsOfDeferredRevenueMember" name="RecognitionFromNewBillingsOfDeferredRevenueMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable" name="PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_EmployeeStockPurchasePlanOfferingPeriod" name="EmployeeStockPurchasePlanOfferingPeriod" type="xbrli:durationItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_SubscriptionMaintenanceAndSupportServicesMember" name="SubscriptionMaintenanceAndSupportServicesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_CommonStockFairMarketValuePercentage" name="CommonStockFairMarketValuePercentage" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember" name="MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_ShortTermDeposits" name="ShortTermDeposits" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_EscrowClaimReceivable" name="EscrowClaimReceivable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_CreditFacilityExtendedMaturityDate" name="CreditFacilityExtendedMaturityDate" type="xbrli:dateItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_EscrowDepositDisbursementsRelatedToAcquisition" name="EscrowDepositDisbursementsRelatedToAcquisition" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_AccountsReceivableAndContractAssetCurrent" name="AccountsReceivableAndContractAssetCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_BusinessCombinationConsiderationPaidInKind" name="BusinessCombinationConsiderationPaidInKind" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition" name="FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_PercentageOfRevenueVolatility" name="PercentageOfRevenueVolatility" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false"/>
  <xsd:element id="ssti_PaymentForInvestmentInIntangibleAndOtherAssets" name="PaymentForInvestmentInIntangibleAndOtherAssets" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_RecognitionFromBeginningDeferredRevenueBalanceMember" name="RecognitionFromBeginningDeferredRevenueBalanceMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_PrepaidSoftwareAndLicensesCurrent" name="PrepaidSoftwareAndLicensesCurrent" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_LeaseTerminationMember" name="LeaseTerminationMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_FairValueAdjustmentOfContingentConsideration" name="FairValueAdjustmentOfContingentConsideration" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_FinancingReceivableAllowanceForCreditLossesAdjustment" name="FinancingReceivableAllowanceForCreditLossesAdjustment" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_AccruedLiabilitiesAndOtherLiabilitiesMember" name="AccruedLiabilitiesAndOtherLiabilitiesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_ForensicLogicLlcMember" name="ForensicLogicLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_LineOfCreditWeightedAverageInterestRate" name="LineOfCreditWeightedAverageInterestRate" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_TechnologicSolutionsLlcMember" name="TechnologicSolutionsLlcMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_ProfessionalSoftwareDevelopmentServicesMember" name="ProfessionalSoftwareDevelopmentServicesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_PercentageOfAssetsFairValueAdjustment" name="PercentageOfAssetsFairValueAdjustment" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false"/>
  <xsd:element id="ssti_AccountingPoliciesTable" name="AccountingPoliciesTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock" name="ScheduleOfAccountsReceivableAndContractAssetTableTextblock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" name="FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_BusinessAndNatureOfOperationsLineItems" name="BusinessAndNatureOfOperationsLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock" name="RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" name="SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate" type="xbrli:dateItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_TwoThousandSeventeenEquityIncentivePlanMember" name="TwoThousandSeventeenEquityIncentivePlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_AccountingPoliciesLineItems" name="AccountingPoliciesLineItems" type="xbrli:stringItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_PerformanceBasedRestrictedStockUnitRSUMember" name="PerformanceBasedRestrictedStockUnitRSUMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_SoundthinkingMember" name="SoundthinkingMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments" name="ContractWithCustomerLiabilityRevenueRecognizedAdjustments" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_PercentageOfDiscountedCashFlows" name="PercentageOfDiscountedCashFlows" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_StockRepurchaseProgramMember" name="StockRepurchaseProgramMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_NumberOfAgencies" name="NumberOfAgencies" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates" name="NumberOfUniversitiesAndCorporationsInWhichEntityOperates" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_UnvestedPerformanceStockUnitsMember" name="UnvestedPerformanceStockUnitsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember" name="AccruedExpensesAndOtherCurrentLiabilitiesMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" name="PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" name="NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_RevenueFromRelatedParty" name="RevenueFromRelatedParty" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_LetterOfCreditSubfacilityMember" name="LetterOfCreditSubfacilityMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset" name="IncreaseDecreaseInAccountsReceivableAndContractAsset" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_BusinessAndNatureOfOperationsTable" name="BusinessAndNatureOfOperationsTable" type="xbrli:stringItemType" substitutionGroup="xbrldt:hypercubeItem" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_NumberOfSubsidiary" name="NumberOfSubsidiary" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false"/>
  <xsd:element id="ssti_SafepointeLLCMember" name="SafepointeLLCMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_CustomerOneMember" name="CustomerOneMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock" name="OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock" type="dtr-types:textBlockItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember" name="TwoThousandAndSeventeenEmployeeStockPurchasePlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable" name="PropertyAndEquipmentPurchasesIncludedInAccountsPayable" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_AcquiredSoftwareTechnologyMember" name="AcquiredSoftwareTechnologyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_DomesticFinancialInstitutionTwoMember" name="DomesticFinancialInstitutionTwoMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_CustomerTwoMember" name="CustomerTwoMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_UnvestedRestrictedStockUnitsMember" name="UnvestedRestrictedStockUnitsMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_NumberOfCustomers" name="NumberOfCustomers" type="xbrli:integerItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement" name="Share-BasedPaymentArrangementExpenseAfterTargetAchievement" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_DomesticFinancialInstitutionThreeMember" name="DomesticFinancialInstitutionThreeMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_CustomerThreeMember" name="CustomerThreeMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" name="IncreaseInCommonStockCapitalSharesReservedForFutureIssuance" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_PatentsAndIntellectualPropertyMember" name="PatentsAndIntellectualPropertyMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_PSU-BasedPerformanceBonusPlanMember" name="PSU-BasedPerformanceBonusPlanMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" name="SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod" type="xbrli:gMonthDayItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities" name="Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" name="StockIssuedDuringPeriodSharesRestrictedStockAwardVesting" type="xbrli:sharesItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
  <xsd:element id="ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="instant" nillable="true" abstract="false" xbrli:balance="debit"/>
  <xsd:element id="ssti_DomesticFinancialInstitutionOneMember" name="DomesticFinancialInstitutionOneMember" type="dtr-types:domainItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="true"/>
  <xsd:element id="ssti_ContractWithCustomerLiabilityForeignCurrencyImpact" name="ContractWithCustomerLiabilityForeignCurrencyImpact" type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false" xbrli:balance="credit"/>
  <xsd:element id="ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement" name="PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement" type="dtr-types:percentItemType" substitutionGroup="xbrli:item" xbrli:periodType="duration" nillable="true" abstract="false"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>7
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document and Entity Information - shares<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Aug. 09, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-Q<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jun. 30,  2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">Q2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">SSTI<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">SoundThinking, Inc.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001351636<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Non-accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-38107<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">DE<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">47-0949915<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">39300 Civic Center Dr.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">Suite 300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Fremont<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">CA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">94538<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">510<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">794-3100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,791,251<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common stock, par value $0.005 per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentQuarterlyReport', window );">Document Quarterly Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentQuarterlyReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an quarterly report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-Q<br> -Number 240<br> -Section 308<br> -Subsection a<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentQuarterlyReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>8
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 8,950<span></span>
</td>
<td class="nump">$ 13,183<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountsReceivableAndContractAssetCurrent', window );">Accounts receivable and contract assets, net</a></td>
<td class="nump">30,743<span></span>
</td>
<td class="nump">25,464<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">4,816<span></span>
</td>
<td class="nump">4,881<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">44,509<span></span>
</td>
<td class="nump">43,528<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">19,915<span></span>
</td>
<td class="nump">20,131<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease right-of-use assets</a></td>
<td class="nump">1,643<span></span>
</td>
<td class="nump">1,878<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">34,213<span></span>
</td>
<td class="nump">34,213<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="nump">31,266<span></span>
</td>
<td class="nump">33,182<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">3,230<span></span>
</td>
<td class="nump">3,861<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">134,776<span></span>
</td>
<td class="nump">136,793<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">3,348<span></span>
</td>
<td class="nump">3,442<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities', window );">Accrued expenses and other current liabilities</a></td>
<td class="nump">7,153<span></span>
</td>
<td class="nump">10,216<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LinesOfCreditCurrent', window );">Line of credit</a></td>
<td class="nump">4,000<span></span>
</td>
<td class="nump">4,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue, short-term</a></td>
<td class="nump">38,479<span></span>
</td>
<td class="nump">38,401<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">52,980<span></span>
</td>
<td class="nump">56,059<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityNoncurrent', window );">Deferred revenue, long-term</a></td>
<td class="nump">5,051<span></span>
</td>
<td class="nump">5,832<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred tax liability</a></td>
<td class="nump">1,378<span></span>
</td>
<td class="nump">1,361<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Operating lease liabilities, net of current portion</a></td>
<td class="nump">846<span></span>
</td>
<td class="nump">1,142<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">60,255<span></span>
</td>
<td class="nump">64,394<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 11)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders' equity</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValue', window );">Common stock: $0.005 par value; 500,000,000 shares authorized; 12,788,631 and 12,634,485 shares issued and outstanding as of June 30, 2025 and December 31, 2024, respectively</a></td>
<td class="nump">64<span></span>
</td>
<td class="nump">64<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">183,719<span></span>
</td>
<td class="nump">177,021<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Accumulated deficit</a></td>
<td class="num">(108,902)<span></span>
</td>
<td class="num">(104,298)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss</a></td>
<td class="num">(360)<span></span>
</td>
<td class="num">(388)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total stockholders' equity</a></td>
<td class="nump">74,521<span></span>
</td>
<td class="nump">72,399<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders' equity</a></td>
<td class="nump">$ 134,776<span></span>
</td>
<td class="nump">$ 136,793<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_AccountsReceivableAndContractAssetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accounts receivable and contract asset current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_AccountsReceivableAndContractAssetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesAndOtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480870/815-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapitalCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapitalCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (01)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-41<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478064/805-740-55-13<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 39<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-39<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 64<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481620/480-10-55-64<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 31: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 32: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LinesOfCreditCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The carrying value as of the balance sheet date of the current portion of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LinesOfCreditCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>9
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Balance Sheets (Parenthetical) - $ / shares<br></strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Statement of Financial Position [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value</a></td>
<td class="nump">$ 0.005<span></span>
</td>
<td class="nump">$ 0.005<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized</a></td>
<td class="nump">500,000,000<span></span>
</td>
<td class="nump">500,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued</a></td>
<td class="nump">12,788,631<span></span>
</td>
<td class="nump">12,634,485<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding</a></td>
<td class="nump">12,788,631<span></span>
</td>
<td class="nump">12,634,485<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>10
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Operations (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Income Statement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenues</a></td>
<td class="nump">$ 25,889<span></span>
</td>
<td class="nump">$ 26,960<span></span>
</td>
<td class="nump">$ 54,238<span></span>
</td>
<td class="nump">$ 52,370<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenueAbstract', window );"><strong>Costs</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of revenues</a></td>
<td class="nump">12,058<span></span>
</td>
<td class="nump">10,781<span></span>
</td>
<td class="nump">23,776<span></span>
</td>
<td class="nump">21,052<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_ImpairmentOfPropertyAndEquipment', window );">Impairment of property and equipment</a></td>
<td class="nump">36<span></span>
</td>
<td class="nump">106<span></span>
</td>
<td class="nump">73<span></span>
</td>
<td class="nump">358<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfRevenue', window );">Total costs</a></td>
<td class="nump">12,094<span></span>
</td>
<td class="nump">10,887<span></span>
</td>
<td class="nump">23,849<span></span>
</td>
<td class="nump">21,410<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross profit</a></td>
<td class="nump">13,795<span></span>
</td>
<td class="nump">16,073<span></span>
</td>
<td class="nump">30,389<span></span>
</td>
<td class="nump">30,960<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpensesAbstract', window );"><strong>Operating expenses</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingAndMarketingExpense', window );">Sales and marketing</a></td>
<td class="nump">6,525<span></span>
</td>
<td class="nump">7,322<span></span>
</td>
<td class="nump">13,784<span></span>
</td>
<td class="nump">14,434<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research and development</a></td>
<td class="nump">3,746<span></span>
</td>
<td class="nump">3,468<span></span>
</td>
<td class="nump">7,811<span></span>
</td>
<td class="nump">7,028<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GeneralAndAdministrativeExpense', window );">General and administrative</a></td>
<td class="nump">6,467<span></span>
</td>
<td class="nump">5,880<span></span>
</td>
<td class="nump">12,941<span></span>
</td>
<td class="nump">12,710<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_FairValueAdjustmentOfContingentConsideration', window );">Change in fair value of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(554)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(554)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingExpenses', window );">Total operating expenses</a></td>
<td class="nump">16,738<span></span>
</td>
<td class="nump">16,116<span></span>
</td>
<td class="nump">34,536<span></span>
</td>
<td class="nump">33,618<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating loss</a></td>
<td class="num">(2,943)<span></span>
</td>
<td class="num">(43)<span></span>
</td>
<td class="num">(4,147)<span></span>
</td>
<td class="num">(2,658)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpenseAbstract', window );"><strong>Other expense, net</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestIncomeExpenseNonoperatingNet', window );">Interest expense, net</a></td>
<td class="num">(20)<span></span>
</td>
<td class="num">(61)<span></span>
</td>
<td class="num">(32)<span></span>
</td>
<td class="num">(183)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other expense, net</a></td>
<td class="num">(71)<span></span>
</td>
<td class="num">(414)<span></span>
</td>
<td class="num">(239)<span></span>
</td>
<td class="num">(472)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonoperatingIncomeExpense', window );">Total other expense, net</a></td>
<td class="num">(91)<span></span>
</td>
<td class="num">(475)<span></span>
</td>
<td class="num">(271)<span></span>
</td>
<td class="num">(655)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Loss before income taxes</a></td>
<td class="num">(3,034)<span></span>
</td>
<td class="num">(518)<span></span>
</td>
<td class="num">(4,418)<span></span>
</td>
<td class="num">(3,313)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Provision for income taxes</a></td>
<td class="nump">86<span></span>
</td>
<td class="nump">234<span></span>
</td>
<td class="nump">186<span></span>
</td>
<td class="nump">348<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (3,120)<span></span>
</td>
<td class="num">$ (752)<span></span>
</td>
<td class="num">$ (4,604)<span></span>
</td>
<td class="num">$ (3,661)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net loss per share, basic</a></td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
<td class="num">$ (0.36)<span></span>
</td>
<td class="num">$ (0.29)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net loss per share, diluted</a></td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
<td class="num">$ (0.36)<span></span>
</td>
<td class="num">$ (0.29)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted-average shares used in computing net loss per share, basic</a></td>
<td class="nump">12,712,191<span></span>
</td>
<td class="nump">12,792,952<span></span>
</td>
<td class="nump">12,680,456<span></span>
</td>
<td class="nump">12,781,910<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted-average shares used in computing net loss per share, diluted</a></td>
<td class="nump">12,712,191<span></span>
</td>
<td class="nump">12,792,952<span></span>
</td>
<td class="nump">12,680,456<span></span>
</td>
<td class="nump">12,781,910<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_FairValueAdjustmentOfContingentConsideration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value adjustment of contingent consideration.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_FairValueAdjustmentOfContingentConsideration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_ImpairmentOfPropertyAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Impairment of property and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_ImpairmentOfPropertyAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate cost of goods produced and sold and services rendered during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfRevenueAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfRevenueAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestIncomeExpenseNonoperatingNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of interest income (expense) classified as nonoperating.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestIncomeExpenseNonoperatingNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonoperatingIncomeExpenseAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonoperatingIncomeExpenseAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingExpensesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingExpensesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingAndMarketingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total amount of expenses directly related to the marketing or selling of products or services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingAndMarketingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Comprehensive Loss (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (3,120)<span></span>
</td>
<td class="num">$ (752)<span></span>
</td>
<td class="num">$ (4,604)<span></span>
</td>
<td class="num">$ (3,661)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract', window );"><strong>Other comprehensive loss:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Change in foreign currency translation adjustment, net of taxes</a></td>
<td class="nump">2<span></span>
</td>
<td class="nump">12<span></span>
</td>
<td class="nump">28<span></span>
</td>
<td class="num">(4)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Comprehensive loss</a></td>
<td class="num">$ (3,118)<span></span>
</td>
<td class="num">$ (740)<span></span>
</td>
<td class="num">$ (4,576)<span></span>
</td>
<td class="num">$ (3,665)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomeNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>12
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common Stock</div></th>
<th class="th"><div>Additional Paid-in Capital</div></th>
<th class="th"><div>Accumulated Deficit</div></th>
<th class="th"><div>Accumulated Other Comprehensive Loss</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance at Dec. 31, 2023</a></td>
<td class="nump">$ 74,757<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">$ 170,139<span></span>
</td>
<td class="num">$ (95,118)<span></span>
</td>
<td class="num">$ (328)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, Shares at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,761,448<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting', window );">Issuance of common stock from RSUs vested, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">31,720<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">2,927<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,927<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation income (loss)</a></td>
<td class="num">(16)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(16)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(2,909)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,909)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Mar. 31, 2024</a></td>
<td class="nump">74,759<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">173,066<span></span>
</td>
<td class="num">(98,027)<span></span>
</td>
<td class="num">(344)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, Shares at Mar. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,793,168<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance at Dec. 31, 2023</a></td>
<td class="nump">74,757<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">170,139<span></span>
</td>
<td class="num">(95,118)<span></span>
</td>
<td class="num">(328)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, Shares at Dec. 31, 2023</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,761,448<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation income (loss)</a></td>
<td class="num">(4)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(3,661)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Jun. 30, 2024</a></td>
<td class="nump">75,615<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">174,662<span></span>
</td>
<td class="num">(98,779)<span></span>
</td>
<td class="num">(332)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, Shares at Jun. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,782,928<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance at Mar. 31, 2024</a></td>
<td class="nump">74,759<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">173,066<span></span>
</td>
<td class="num">(98,027)<span></span>
</td>
<td class="num">(344)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, Shares at Mar. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,793,168<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,640<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(1,999)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,999)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(134,150)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan', window );">Issuance of common stock from ESPP purchases</a></td>
<td class="nump">444<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">444<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans', window );">Issuance of common stock from ESPP purchase, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">36,586<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting', window );">Issuance of common stock from RSUs vested, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">81,684<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">3,146<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,146<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation income (loss)</a></td>
<td class="nump">12<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(752)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(752)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Jun. 30, 2024</a></td>
<td class="nump">75,615<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">174,662<span></span>
</td>
<td class="num">(98,779)<span></span>
</td>
<td class="num">(332)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, Shares at Jun. 30, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,782,928<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance at Dec. 31, 2024</a></td>
<td class="nump">72,399<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">177,021<span></span>
</td>
<td class="num">(104,298)<span></span>
</td>
<td class="num">(388)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, Shares at Dec. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,634,485<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(504)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(504)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(33,493)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting', window );">Issuance of common stock from RSUs vested, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65,109<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">3,404<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,404<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income</a></td>
<td class="nump">26<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">26<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(1,484)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,484)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Mar. 31, 2025</a></td>
<td class="nump">73,844<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">179,924<span></span>
</td>
<td class="num">(105,782)<span></span>
</td>
<td class="num">(362)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, Shares at Mar. 31, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,666,101<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance at Dec. 31, 2024</a></td>
<td class="nump">$ 72,399<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">177,021<span></span>
</td>
<td class="num">(104,298)<span></span>
</td>
<td class="num">(388)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, Shares at Dec. 31, 2024</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,634,485<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options, Shares</a></td>
<td class="nump">4,104<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation income (loss)</a></td>
<td class="nump">$ 28<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(4,604)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Jun. 30, 2025</a></td>
<td class="nump">74,521<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">183,719<span></span>
</td>
<td class="num">(108,902)<span></span>
</td>
<td class="num">(360)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, Shares at Jun. 30, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,788,631<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance at Mar. 31, 2025</a></td>
<td class="nump">73,844<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">179,924<span></span>
</td>
<td class="num">(105,782)<span></span>
</td>
<td class="num">(362)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Beginning balance, Shares at Mar. 31, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,666,101<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Exercise of stock options</a></td>
<td class="nump">16<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">16<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercise of stock options, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,453<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(470)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(470)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(31,570)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan', window );">Issuance of common stock from ESPP purchases</a></td>
<td class="nump">408<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">408<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans', window );">Issuance of common stock from ESPP purchase, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">40,865<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting', window );">Issuance of common stock from RSUs vested, Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">109,782<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation</a></td>
<td class="nump">3,841<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,841<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation income (loss)</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">(3,120)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,120)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance at Jun. 30, 2025</a></td>
<td class="nump">$ 74,521<span></span>
</td>
<td class="nump">$ 64<span></span>
</td>
<td class="nump">$ 183,719<span></span>
</td>
<td class="num">$ (108,902)<span></span>
</td>
<td class="num">$ (360)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Ending balance, Shares at Jun. 30, 2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,788,631<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Stock issued during period shares restricted stock award vesting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of other comprehensive income (loss) attributable to parent entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued which are neither cancelled nor held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued during the period as a result of an employee stock purchase plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate change in value for stock issued during the period as a result of employee stock purchase plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 16: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>13
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Condensed Consolidated Statements of Cash Flows (Unaudited) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProfitLoss', window );">Net loss</a></td>
<td class="num">$ (4,604)<span></span>
</td>
<td class="num">$ (3,661)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net loss to net cash provided by (used in ) operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation of property and equipment</a></td>
<td class="nump">3,037<span></span>
</td>
<td class="nump">3,126<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">1,931<span></span>
</td>
<td class="nump">1,929<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductionRelatedImpairmentsOrCharges', window );">Impairment of property and equipment</a></td>
<td class="nump">73<span></span>
</td>
<td class="nump">358<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensation', window );">Stock-based compensation</a></td>
<td class="nump">7,245<span></span>
</td>
<td class="nump">6,073<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred taxes</a></td>
<td class="nump">18<span></span>
</td>
<td class="nump">107<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment', window );">Loss on disposal of property and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForLoanLossesExpensed', window );">Allowance for credit losses</a></td>
<td class="nump">269<span></span>
</td>
<td class="nump">50<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1', window );">Change in fair value of contingent consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(554)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract', window );"><strong>Changes in operating assets and liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset', window );">Accounts receivable and contract asset</a></td>
<td class="num">(5,548)<span></span>
</td>
<td class="num">(5,055)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other assets</a></td>
<td class="nump">696<span></span>
</td>
<td class="nump">368<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(713)<span></span>
</td>
<td class="num">(728)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities', window );">Accrued expenses and other liabilities</a></td>
<td class="num">(3,124)<span></span>
</td>
<td class="nump">20<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue</a></td>
<td class="num">(704)<span></span>
</td>
<td class="nump">7,353<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by (used in) operating activities</a></td>
<td class="num">(1,424)<span></span>
</td>
<td class="nump">9,391<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchase of property and equipment</a></td>
<td class="num">(2,277)<span></span>
</td>
<td class="num">(3,717)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_PaymentForInvestmentInIntangibleAndOtherAssets', window );">Investment in intangible and other assets</a></td>
<td class="num">(13)<span></span>
</td>
<td class="num">(31)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(2,290)<span></span>
</td>
<td class="num">(3,748)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from exercise of stock options</a></td>
<td class="nump">19<span></span>
</td>
<td class="nump">5<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Repurchases of common stock</a></td>
<td class="num">(974)<span></span>
</td>
<td class="num">(1,999)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans', window );">Proceeds from employee stock purchase plan</a></td>
<td class="nump">408<span></span>
</td>
<td class="nump">444<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(547)<span></span>
</td>
<td class="num">(1,550)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect', window );">Change in cash and cash equivalents</a></td>
<td class="num">(4,261)<span></span>
</td>
<td class="nump">4,093<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Effect of exchange rate on cash and cash equivalents</a></td>
<td class="nump">28<span></span>
</td>
<td class="num">(6)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at beginning of year</a></td>
<td class="nump">13,183<span></span>
</td>
<td class="nump">5,703<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at end of period</a></td>
<td class="nump">8,950<span></span>
</td>
<td class="nump">9,790<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental cash flow disclosures:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Cash paid for interest</a></td>
<td class="nump">132<span></span>
</td>
<td class="nump">268<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Cash paid for income taxes</a></td>
<td class="nump">353<span></span>
</td>
<td class="nump">136<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities', window );">ROU Assets obtained in exchange for lease liabilities</a></td>
<td class="nump">193<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable', window );">Purchases of property and equipment and intangibles included in accounts payable</a></td>
<td class="nump">$ 706<span></span>
</td>
<td class="nump">$ 614<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase decrease in accounts receivable and contract asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_PaymentForInvestmentInIntangibleAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Payment for investment in intangible and other assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_PaymentForInvestmentInIntangibleAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Property and equipment purchases and intangibles included in accounts payable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Right-of-use assets obtained in exchange for lease liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in value of liability in contingent consideration arrangement in business combination, including, but not limited to, difference arising upon settlement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding effect from change in exchange rate, of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from effect of exchange rate change on cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; held in foreign currency; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 230<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-23<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-22<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in accrued expenses, and obligations classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-45-11<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOperatingCapitalAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOperatingCapitalAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-17<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from issuance of shares under share-based payment arrangement. Excludes option exercised.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductionRelatedImpairmentsOrCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Nonrecurring impairment charges related to the write-off of production-related equipment and inventory. This tag is used when an Entity charges this cost to cost of goods sold.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductionRelatedImpairmentsOrCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProfitLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-3<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 25: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 37: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4J<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4J<br><br>Reference 38: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4K<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481175/810-10-55-4K<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-2<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProfitLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForLoanLossesExpensed">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of credit loss expense (reversal of expense) for financing receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-22<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForLoanLossesExpensed</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pay vs Performance Disclosure - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="4">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Mar. 31, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_PvpTable', window );"><strong>Pay vs Performance Disclosure</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net Income (Loss)</a></td>
<td class="num">$ (3,120)<span></span>
</td>
<td class="num">$ (1,484)<span></span>
</td>
<td class="num">$ (752)<span></span>
</td>
<td class="num">$ (2,909)<span></span>
</td>
<td class="num">$ (4,604)<span></span>
</td>
<td class="num">$ (3,661)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_PvpTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection v<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_PvpTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non-Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrByIndTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrByIndTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>16
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Organization and Description of Business<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract', window );"><strong>Organization, Consolidation and Presentation of Financial Statements [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock', window );">Organization and Description of Business</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 1. Organization and Description of Business</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">SoundThinking, Inc. (the &#8220;Company&#8221;) brings the power of digital transformation to law enforcement and security personnel by providing precision-policing and security solutions, combining data-driven solutions and strategic advisory services for law enforcement, security teams and civic leadership. As of June 30, 2025, the Company had approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">335</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">customers and to date has worked with approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,100</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> agencies</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> to help drive more efficient, effective, and equitable public safety outcomes.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company&#8217;s SafetySmart&#153; platform includes six data-driven tools consisting of (i) its flagship product, ShotSpotter</span><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:6.7pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#174;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the leading outdoor gunshot detection, location and alerting system trusted by </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">179</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> cities and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">22</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> universities and corporations as of June 30, 2025, (ii) CrimeTracer&#153;, a leading law enforcement search engine that enables investigators to search through more than one billion criminal justice records from across jurisdictions to generate tactical leads and quickly make intelligent connections to solve crimes, (iii) CaseBuilder&#153;, a one-stop investigative management system for tracking, reporting, and collaborating on cases, (iv) ResourceRouter&#153; that directs the deployment of patrol and community anti-violence resources in an objective way to help maximize the impact of limited resources and improve community safety, (v) PlateRanger&#153; powered by Rekor</span><span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:6.7pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#174;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, an advanced license plate recognition (&#8220;ALPR&#8221;) and vehicle identification solution that leverages artificial intelligence (&#8220;AI&#8221;) and machine learning (&#8220;ML&#8221;) to enhance investigative efficiency and provide real-time data sharing for law enforcement, introduced in July 2024 through a strategic partnership with Rekor Systems, Inc and (vi) SafePointe&#153;, an AI-based weapons detection system. The Company offers its solutions on a software-as-a-service subscription model to its customers.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">ShotSpotter for Campus and ShotSpotter for Corporate, are typically smaller-scale deployments of ShotSpotter vertically marketed to universities, corporate campuses, and key infrastructure centers to mitigate risk and enhance security by notifying authorities of outdoor gunfire incidents, saving critical minutes for first responders to arrive. In 2019, the Company created a technology innovation unit, SoundThinking Labs, to expand its efforts supporting innovative uses of its technology to help protect wildlife and the environment. Additionally, the Company provides maintenance and support services and professional software development services to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">two</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customers, through sales channel intermediaries.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company&#8217;s principal executive offices are located in Fremont, California. The Company has </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">six</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> wholly owned subsidiaries.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480424/946-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480424/946-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/810/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480922/205-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481034/205-10-S45-5<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/205/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>17
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Summary of Significant Accounting Policies</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 2. Summary of Significant Accounting Policies</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Basis of Presentation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;U.S. GAAP&#8221;) and applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) regarding interim financial reporting. Certain information and note disclosures normally included in the consolidated financial statements prepared in accordance with U.S. GAAP have been condensed or omitted pursuant to such rules and regulations. The unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries. All significant intercompany transactions have been eliminated upon consolidation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements and related financial information should be read in conjunction with the consolidated financial statements filed with the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024 (&#8220;Annual Report&#8221;) filed with the SEC on March 31, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the opinion of management, the accompanying unaudited condensed consolidated financial statements reflect all normal recurring adjustments necessary to present fairly the financial position, results of operations, comprehensive loss, stockholders&#8217; equity and cash flows for the interim periods, but are not necessarily indicative of the results of operations or cash flows to be anticipated for the full year 2025 or any future period. The Company has evaluated subsequent events occurring after the date of the condensed consolidated financial statements for events requiring recording or disclosure in the unaudited condensed consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Use of Estimates</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The preparation of unaudited condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and reported amounts of revenues and expenses during the reporting period. On an ongoing basis, management evaluates its significant estimates, including the valuation of accounts receivable, the lives and realization of tangible and intangible assets, contingent consideration liabilities, stock-based compensation expense, customer life, accounting for revenue recognition, contingent liabilities related to legal matters, and income taxes including deferred taxes and any related valuation allowance. In particular, the Company&#8217;s contingent consideration liabilities are subject to significant estimates surrounding forecasts of certain revenues and other factors. Management bases its estimates on historical experience and on various other market-specific and relevant assumptions it believes to be reasonable under the circumstances. Actual results could differ from those estimates and such differences could be material to the Company&#8217;s financial position and results of operations.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company records net deferred tax assets to the extent the Company believes these assets will more likely than not be realized. In making such a determination, the Company considers all available positive and negative evidence, including future reversals of existing taxable temporary differences, projected future taxable income, tax-planning strategies, and results of recent operations. In the event the Company determines that it would be able to realize its deferred assets in the future in excess of their net recorded amount, the Company would make an adjustment to the deferred tax asset valuation allowance, which would reduce the provision for income taxes.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentrations of Risk</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Credit Risk</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; Financial instruments that potentially subject the Company to concentration of credit risk consisted primarily of cash and cash equivalents and accounts receivable from trade customers. The Company maintains its deposits of cash and cash equivalents at </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">three</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> domestic and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">four</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> international financial institutions. The Company is exposed to credit risk in the event of default by a financial institution to the extent that cash and cash equivalents are in excess of the amount insured by the Federal Deposit Insurance Corporation (&#8220;FDIC&#8221;) and other local country government agencies. The Company generally places its cash and cash equivalents with high-credit quality financial institutions. To date, the Company has not experienced any losses on its cash and cash equivalents. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company had approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million, for which only $250,000 is insured under FDIC limits, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">114,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, deposited with the Company&#8217;s three domestic financial institutions.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Accounts Receivable and Contract Assets</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; At June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">one</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">32</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total accounts receivable and contract assets, net. At December 31, 2024, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">one</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">%, of the Com</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">pany&#8217;s total accounts receivable and contract assets, net.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Revenues</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; For the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">one</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">two</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customers accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">one</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">two</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customers accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Suppliers</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#8211;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company relies on a limited number of suppliers and contract manufacturers. In particular, a single supplier is currently the sole manufacturer of the Company&#8217;s proprietary sensors.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, there were no changes to the Company&#8217;s significant accounting policies described in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024.</span></p></div><div><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Recent Accounting Pronouncements</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Improvements to Income Tax Disclosures</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In December 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued Accounting Standards Update (&#8220;ASU&#8221;) 2023-09, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Improvements to Income Tax Disclosures</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> (&#8220;ASU 2023-09&#8221;). ASU 2023-09 enhances the transparency of income tax disclosures, primarily by requiring public business entities to disclose on an annual basis, specific categories in the rate reconciliation tabular presentation, as well as by providing additional information for reconciling items that meet a quantitative threshold. The ASU also requires disaggregated disclosures of federal, state and foreign income taxes</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">paid. The new guidance is effective for fiscal years beginning after December 15, 2024. The Company does not expect implementation of the new guidance to have a material impact on its unaudited condensed consolidated financial statements.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Expense Disaggregation Disclosures</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In November 2024, the FASB issued ASU 2024-03, Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40), which requires disclosure of specific information about costs and expenses within relevant expense captions on the face of the income statement, qualitative descriptions for expense captions not specifically disaggregated quantitatively, and the total amount and definition of selling expenses for interim and annual reporting periods. This standard is effective for the Company&#8217;s annual reporting period beginning January 1, 2027 and interim reporting periods beginning January 1, 2028 and should be applied on a retrospective or prospective basis, with early adoption permitted. We are currently assessing the impact of adopting this standard on our consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>18
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Related Disclosures<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue Related Disclosures</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 3. Revenue Related Disclosures</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span><span style="color:#0000ff;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The changes in deferred revenue were as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:47.51%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:10.822000000000001%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:10.142000000000001%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.602%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.602%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Beginning balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">45,437</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50,752</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">44,233</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">42,077</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;New billings</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">21,943</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,887</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50,362</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">57,924</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Revenue recognized during the year from beginning balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(15,533</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(19,550</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(23,484</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_567e21a0-9fe9-456e-832c-0ff085ea3142;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></span></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(29,051</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_06429d32-4537-4ebc-86cc-d19d6502fed4;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></span></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Revenue recognized during the year from new billings</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(8,317</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(6,658</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27,581</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">21,519</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Ending balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">43,530</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">49,431</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">43,530</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">49,431</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table presents remaining performance obligations for contractually committed revenues as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025 (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:47.5%;box-sizing:content-box;"></td>
         <td style="width:12.82%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:12.16%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:11.6%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.6%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_a7f7bb7e-1cb0-40b4-bfe3-75e936ee0852;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Remainder of 2025</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30,049</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_8c796ba5-126f-4c87-bca3-8bedf08160f5;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2026</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">41,462</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_2fc23526-7ba6-46e0-9ebd-5e8619fff34b;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2027</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,201</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_8bfe4752-f28e-4d06-a7bb-d5cf53a2fee9;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Thereafter</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,214</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">99,926</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The timing of certain revenue recognition included in the table above is based on estimates of go-live dates for contracts not yet live. Contractually committed revenue includes deferred revenue as of June 30, 2025 and amounts under contract that will be invoiced after June 30, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the United States, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the Bahamas, South Africa and South America. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the United States, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the Bahamas, South Africa </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">and Uruguay.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">52.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the United States, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the Bahamas, South Africa and South America. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">51.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the United States, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from customers in the Bahamas, South Africa</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and Uruguay.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from monthly subscription, maintenance and support services, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">from professional software development services. During</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from monthly subscription, maintenance and support services, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from professional software development services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">53.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from monthly subscription, maintenance and support services, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from professional software development services. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized revenues of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from monthly subscription, maintenance and support services, and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million from professional software development services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025, the Company recognized approximately $4.3 million of catch-up revenue comprising approximately $3.5 million of catch-up revenue during the three months ended March 31, 2025 based on two 3-year contract renewals with New York City Police Department and $0.8 million of catch-up revenue from various customers during the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-15<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 4. Fair Value Measurements</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In August 2023, the Company estimated the fair value of the contingent consideration liability associated with its acquisition of SafePointe, LLC (&#8220;SafePointe&#8221;) to be $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million as of the acquisition date, using a Monte Carlo simulation approach with asset and revenue volatility of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">76.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">%, respectively. This fair value measurement is classified as Level III within the fair value hierarchy as prescribed by ASC 820, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Fair Value Measurement</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As of December 31, 2023, the Company evaluated the contingent consideration related to the acquisition of SafePointe based on estimated SafePointe revenue and adjusted the consideration to $0.6 million. During the first half of 2024, the Company determined the contingent consideration was not probable of being earned resulting in the fair value of contingent consideration liabilities as of June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and 2024 being </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">nil</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">. Accordingly, the Company recognized a change in fair value of contingent consideration of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million during the three and six months ended June 30, 2024. There were </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> changes in the fair value of contingent consideration during the three and six months ended June 30, 2025.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">There were </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> transfers into or out of Level III during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 and 2024.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company also has $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million in a money market fund. The fair value measurement was classified as Level I within the fair value hierarchy as prescribed by Accounting Standards Codification 820-10-35-37 (&#8220;ASC 820, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Fair Value Measuremen</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">t&#8221;).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company records its financial assets and liabilities at fair value. The carrying amounts of certain of the Company&#8217;s financial instruments, including cash, trade and other receivables, net, and accounts payable, approximate their fair value due to their short maturities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 107<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-107<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 940<br> -SubTopic 820<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478119/940-820-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets, Net<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets, Net</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 5. Intangible Assets, Net</span></p><div><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Intangible assets consist of the following (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"></td>
         <td style="width:13.28%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-Average Amortization Period  (in years)</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Gross</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Net</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,470</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,226</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">18,244</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Acquired software technology</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,340</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,766</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,574</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Patents and intellectual property</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,081</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,505</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">576</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Tradename</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,100</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,228</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">872</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total intangible assets, net</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">45,991</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,725</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31,266</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"></td>
         <td style="width:13.28%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31, 2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-Average Amortization Period  (in years)</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Gross</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Net</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,470</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,307</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,163</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Acquired software technology</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,340</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,911</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,429</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Patents and intellectual property</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,068</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,411</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">657</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Tradename</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,100</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,167</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">933</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total intangible assets, net</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">45,978</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,796</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">33,182</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Intangible amortization expense was approximately $0.9 million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2025 and 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, respectively. Intangible amortization expense was approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million for both of the six-month periods ended June 30, 2025 and 2024.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table presents future intangible asset amortization as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025 (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"></td>
         <td style="width:13.28%;box-sizing:content-box;"></td>
         <td style="width:14.3%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:14.3%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Remainder of 2025</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,899</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2026</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,809</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,809</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,758</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,650</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,341</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31,266</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all or part of the information related to intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/985-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Details of Certain Condensed Consolidated Balance Sheet Accounts<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock', window );">Details of Certain Condensed Consolidated Balance Sheet Accounts</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 6. Details of Certain Condensed Consolidated Balance Sheet Accounts</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Accounts receivable and contract assets, net (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.96%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accounts receivable</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27,714</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,635</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Contract assets</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,573</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,104</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Allowance for credit losses</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">544</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">275</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30,743</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,464</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Prepaid expenses and other current assets (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.96%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred commissions</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,592</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,477</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Prepaid software and licenses</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,356</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,306</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Prepaid insurance</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">154</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,069</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Short-term deposits</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">384</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">581</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other prepaid expenses</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">330</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">448</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,816</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,881</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Other assets (long-term) (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.96%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred commissions</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,742</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,152</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Escrow claim</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">357</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">581</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">131</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">128</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,230</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,861</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Accrued expenses and other current liabilities (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.96%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Personnel-related accruals</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,410</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8,252</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating lease liabilities, current</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">922</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">909</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Professional fees</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">169</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">137</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales/use tax payable</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">243</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">141</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">409</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">777</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,153</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,216</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalBalanceSheetDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/210/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SupplementalBalanceSheetDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Related Party Transactions<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsAbstract', window );"><strong>Related Party Transactions [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionsDisclosureTextBlock', window );">Related Party Transactions</a></td>
<td class="text"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 7. Related Party Transactions</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the three and six months ended June 30, 2025, the Company recognized approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">18,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, respectively,</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> in revenues from SoundThinking Labs projects with charitable organizations that have received donations from one of the Company&#8217;s former directors and from one of the Company&#8217;s significant stockholders. During the three and six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company recognized approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">47,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">80,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, respectively, in revenues from such SoundThinking Labs projects.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483326/850-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(g)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/850/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483326/850-10-50-6<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483326/850-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483326/850-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock', window );">Restructuring</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 8. Restructuring</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the second quarter of 2024, the Company restructured its workforce and eliminated </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of its total headcount to more effectively allocate its resources and to reduce operational costs. Additionally, the Company terminated a building lease early for a location that was no longer in use.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Restructuring expense related to the workforce reduction during the three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> amounted to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million, consisting of cash expenditures for </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_ac3bc36c-c6de-4913-9dbf-40bd9d6dc5bf;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">severance and other employee separation-related costs</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">. Restructuring expenses related to the lease termination were $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million, comprising of early </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_5676ee34-2e1d-48d3-a5fc-631384d2056b;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">termination fees and monthly rent</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">. These restructuring expenses were recorded in other expense, net, in the unaudited condensed consolidated statement of operations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">As of June 30, 2024, net restructuring liabilities totaled approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million and were included in accrued expenses and other current liabilities on the Company's unaudited condensed consolidated balance sheet.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">There was </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> restructuring activity during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/420/tableOfContent<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock Repurchase Program<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">Stock Repurchase Program</a></td>
<td class="text"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 9. Stock Repurchase Program</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company repurchased 65,063 shares of its common stock at an average price of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14.92</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share for a total of $1.0 million under its stock repurchase program. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company repurchased </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">134,150</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares of its common stock at an average price of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14.86</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share for a total of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million under its stock repurchase program.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-8A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/505/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-16<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Income (Loss) per Share<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Net Income (Loss) per Share</a></td>
<td class="text"><p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 10. Net Income (Loss) per Share</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The computation of basic net income (loss) per share is based on the weighted-average number of shares of common stock outstanding during each period. The computation of diluted net income (loss) per share is based on the weighted-average number of shares outstanding during the period plus, when their effect is dilutive, incremental shares consisting of shares subject to stock options, restricted stock units, employee stock purchase plan purchase rights and warrants.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table summarizes the computation of basic and diluted net income (loss) per share (in thousands, except share and per share data):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:39.4%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Numerator:</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,120</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">752</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,604</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,661</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Denominator:</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Weighted-average shares outstanding, basic and diluted</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,712,191</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,792,952</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,680,456</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,781,910</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss per share, basic and diluted</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.24</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.06</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.36</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.29</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Th</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">e following potentially dilutive shares outstanding at the end of the periods presented were excluded in the calculation of diluted net loss per share as the effect would have been anti-dilutive:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:52.08%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.18%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.18%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.18%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.38%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Options to purchase common stock</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,772,338</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,796,901</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,772,338</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,796,901</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Restricted stock units exercisable and expected to vest</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,592,981</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,056,904</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,592,981</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,056,904</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Estimated number of shares issuable under 2017 ESPP</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,152</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,124</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,152</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,124</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,385,471</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,878,929</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,385,471</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,878,929</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Equity Incentive Plans<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Equity Incentive Plans</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 11. Equity Incentive Plans</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Stock options</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A summary of option activities under the 2005 Stock Plan, as amended in January 2010 and November 2012 (the &#8220;2005 Plan&#8221;) and 2017 Equity Incentive Plan (the &#8220;2017 Plan&#8221;) during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 is as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:34.327%;box-sizing:content-box;"></td>
         <td style="width:1.02%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.162%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.48%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.102%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.48%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.102%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.102%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.48%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:10.022%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Number<br/>of Options<br/>Outstanding</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Exercise<br/>Price</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Grant Date Fair Value per Option</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Aggregate Intrinsic Value Exercised (in thousands)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Remaining Contractual term (in years)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Outstanding at December 31, 2024</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,774,388</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26.62</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">95,275</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15.92</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9.59</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercised</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,104</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4.48</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">46</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">93,221</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">23.86</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Outstanding at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,772,338</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26.24</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercisable at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,265,627</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27.89</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Vested and expected to vest at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,772,338</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26.24</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">951</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.51</span></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Under an &#8220;evergreen&#8221; provision, the number of shares of common stock reserved for issuance under the 2017 Plan will automatically increase on </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">January 1</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> of each year, beginning on </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">January 1, 2018</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and ending on and including </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">January 1, 2027</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, by </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the total number of shares of the Company&#8217;s common stock outstanding on December 31 of the preceding calendar year or a lesser number of shares determined by the Board. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">accordance with the evergreen provision,</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">number of shares of common stock reserved for issuance under the 2017 Plan was increased on January 1, 2025 by </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">631,724</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares, which was equal to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the total number of shares of common stock outstanding on December 31, 2024.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Restricted stock units</span></p><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A summary of restricted stock unit (&#8220;RSU&#8221;) activities under the 2017 Plan during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 is as follows:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:46.589%;box-sizing:content-box;"></td>
         <td style="width:1.54%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:15.703%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:2.02%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:13.063%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:2.02%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:13.063%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Number<br/>of RSUs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Grant Date Fair Value per RSU</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Aggregate Fair Value of RSUs Vested (in thousands)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Unvested RSUs at December 31, 2024</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">966,131</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19.04</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,852,388</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16.10</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Vested</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">174,891</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19.83</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,785</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Forfeited</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50,647</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16.89</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Unvested RSUs at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,592,981</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16.93</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Performance-based restricted stock units:</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the year ended December 31, 2024, the Company granted to members of the Company&#8217;s management team RSU awards with performance-based vesting conditions (&#8220;PSUs&#8221;)</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, totaling </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">544,228</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares at a grant date fair value of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">17.74</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share, the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2026, based on </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2026, as </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. Compensation expense related to these awards was approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2025 and 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, respectively. Compensation expense related to these awards was approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 and 2024, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company granted to members of the Company&#8217;s management team PSUs of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">813,348</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares with a grant date fair value of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16.43</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share, the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2027, based on </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2027, as determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. As of June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> expense was recorded related to these PSUs as the achievement of the minimum target for 2027 was not probable of being met.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In February 2025, the Company introduced a PSU-based performance bonus plan (&#8220;PSU Bonus Plan&#8221;) for exempt employees. Under the PSU Bonus plan, employees may receive up to </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">133,261</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares with a grant date fair value of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15.12</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the closing stock price on the grant date, which vest in one installment on the certification date and occur as soon as administratively practicable following the end of 2025, based on the satisfaction of the Company obtaining certain performance criteria. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company determined a portion of the shares granted under the PSU Bonus Plan are probable of vesting and recorded $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million expense related to the PSU, for the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three and six months ended June 30, 2025, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company granted to members of the Company&#8217;s leadership team PSUs of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">448,222</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares with a grant date fair value of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15.51</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> per share,  the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2026, based on </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2026, as determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. As of June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company determined a portion of the shares granted under the PSU Bonus Plan are probable of vesting and recorded $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million.</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">2017 Employee Stock Purchase Plan</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Under the 2017 ESPP, eligible employees may purchase shares of our common stock through payroll deductions that cannot exceed </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the employee&#8217;s salary. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The 2017 ESPP provides for a </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six-month</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> offering period. At the end of the purchase period, eligible employees are permitted to purchase shares of common stock at the lower of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">85</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the fair market value at the beginning or end of the offering period subject to tax limitations on the total value of the purchase.</span></span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">2017 ESPP contains an &#8220;evergreen&#8221; provision that provides for an automatic annual share increase on </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">January 1</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> of each year, in an amount equal to the lesser of (1) </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the total number of shares of common stock outstanding on December 31st of the preceding calendar year, (2) </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">150,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares or (3) such number of shares as determined by the Board. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In accordance with the evergreen provision, the number of shares of common stock reserved for issuance under the 2017 ESPP was increased on January 1, 2025 by </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">150,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> shares. The number of shares available for grant under the 2017 ESPP was 675,768 as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense associated with the 2005 Plan, 2017 Plan and 2017 ESPP is recorded in the condensed consolidated statements of operations and was allocated as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:39.4%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cost of revenues</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">620</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">399</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,268</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">839</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">574</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">584</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,165</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,185</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">444</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">303</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">837</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">605</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,203</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,860</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,975</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,444</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,841</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,146</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,245</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,073</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Financing Arrangements<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureAbstract', window );"><strong>Debt Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtDisclosureTextBlock', window );">Financing Arrangements</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 12. </span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Financing Arrangements</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company has a revolving loan facility (the &#8220;Revolving Facility&#8221;) under its Credit Agreement with Umpqua Bank (the &#8220;Umpqua Credit Agreement&#8221;) with a revolving credit commitment of $25.0 million and letter of credit sub-facility of $7.5 million, that matures on October 15, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Any amounts outstanding under the letter of credit sub-facility reduce the amount available for the Company to borrow under the Revolving Facility. The available loan facility as of June 30, 2025 and December 31, 2024 was approximately $21.0 million, for both periods. As of June 30, 2025 and December 31, 2024, there was $4.0 million outstanding on the Company&#8217;s line of credit, which the Company borrowed in August 2023 to partially fund the acquisition of SafePointe. The interest expense recorded for the three and six months ended June 30, 2025 was immaterial based on a weighted-average interest rates of 6.28% and 6.29%, respectively. For the three and six months ended June 30, 2024, the interest expense recorded was $0.1 million and $0.2 million, respectively. As of June 30, 2025 and December 31, 2024, the Company was in compliance with all covenants and other requirements set forth in the Umpqua Credit Agreement.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-8A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481544/470-10-50-6<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 405<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477092/405-40-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 470<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/470/tableOfContent<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 835<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482925/835-30-45-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1C<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1C<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1E<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1E<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1I<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481139/470-20-50-1I<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Note 13. Commitments and Contingencies</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">  </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company may become subject to legal proceedings, as well as demands and claims that arise in the normal course of business. Such claims, even if not meritorious, could result in the expenditure of significant financial and management resources. The Company makes a provision for a liability relating to legal matters when it is both probable that a liability has been incurred and the amount of the loss can be reasonably estimated. These provisions are reviewed and adjusted to include the impacts of negotiations, estimated settlements, legal rulings, advice of legal counsel, and other information and events pertaining to a particular matter.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">An unfavorable outcome on any litigation matters could require payment of substantial damages, or, in connection with any intellectual property infringement claims, could require the Company to pay ongoing royalty payments or could prevent the Company from selling certain of its products. As a result, a settlement of, or an unfavorable outcome on, any of the matters referenced above or other litigation matters could have a material adverse effect on the Company&#8217;s business, operating results, financial condition and cash flows.</span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 405<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/405-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/450/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 440<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478522/954-440-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/440/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock', window );">Basis of Presentation</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Basis of Presentation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#8220;U.S. GAAP&#8221;) and applicable rules and regulations of the Securities and Exchange Commission (&#8220;SEC&#8221;) regarding interim financial reporting. Certain information and note disclosures normally included in the consolidated financial statements prepared in accordance with U.S. GAAP have been condensed or omitted pursuant to such rules and regulations. The unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries. All significant intercompany transactions have been eliminated upon consolidation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements and related financial information should be read in conjunction with the consolidated financial statements filed with the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024 (&#8220;Annual Report&#8221;) filed with the SEC on March 31, 2025.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In the opinion of management, the accompanying unaudited condensed consolidated financial statements reflect all normal recurring adjustments necessary to present fairly the financial position, results of operations, comprehensive loss, stockholders&#8217; equity and cash flows for the interim periods, but are not necessarily indicative of the results of operations or cash flows to be anticipated for the full year 2025 or any future period. The Company has evaluated subsequent events occurring after the date of the condensed consolidated financial statements for events requiring recording or disclosure in the unaudited condensed consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Use of Estimates</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The preparation of unaudited condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and reported amounts of revenues and expenses during the reporting period. On an ongoing basis, management evaluates its significant estimates, including the valuation of accounts receivable, the lives and realization of tangible and intangible assets, contingent consideration liabilities, stock-based compensation expense, customer life, accounting for revenue recognition, contingent liabilities related to legal matters, and income taxes including deferred taxes and any related valuation allowance. In particular, the Company&#8217;s contingent consideration liabilities are subject to significant estimates surrounding forecasts of certain revenues and other factors. Management bases its estimates on historical experience and on various other market-specific and relevant assumptions it believes to be reasonable under the circumstances. Actual results could differ from those estimates and such differences could be material to the Company&#8217;s financial position and results of operations.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company records net deferred tax assets to the extent the Company believes these assets will more likely than not be realized. In making such a determination, the Company considers all available positive and negative evidence, including future reversals of existing taxable temporary differences, projected future taxable income, tax-planning strategies, and results of recent operations. In the event the Company determines that it would be able to realize its deferred assets in the future in excess of their net recorded amount, the Company would make an adjustment to the deferred tax asset valuation allowance, which would reduce the provision for income taxes.</span></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentrations of Risk</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentrations of Risk</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Credit Risk</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; Financial instruments that potentially subject the Company to concentration of credit risk consisted primarily of cash and cash equivalents and accounts receivable from trade customers. The Company maintains its deposits of cash and cash equivalents at </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">three</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> domestic and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">four</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> international financial institutions. The Company is exposed to credit risk in the event of default by a financial institution to the extent that cash and cash equivalents are in excess of the amount insured by the Federal Deposit Insurance Corporation (&#8220;FDIC&#8221;) and other local country government agencies. The Company generally places its cash and cash equivalents with high-credit quality financial institutions. To date, the Company has not experienced any losses on its cash and cash equivalents. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, the Company had approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> million, for which only $250,000 is insured under FDIC limits, $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">13,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> and $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">114,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, deposited with the Company&#8217;s three domestic financial institutions.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Accounts Receivable and Contract Assets</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; At June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">one</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">32</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total accounts receivable and contract assets, net. At December 31, 2024, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">one</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">%, of the Com</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">pany&#8217;s total accounts receivable and contract assets, net.</span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Revenues</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> &#8211; For the three months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">one</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">three months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">two</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customers accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">one</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customer accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">two</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> customers accounted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">% of the Company&#8217;s total revenues.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Concentration of Suppliers</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#8211;</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The Company relies on a limited number of suppliers and contract manufacturers. In particular, a single supplier is currently the sole manufacturer of the Company&#8217;s proprietary sensors.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">During the six months ended June 30, 2025</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">, there were no changes to the Company&#8217;s significant accounting policies described in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2024.</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock', window );">Recent Accounting Pronouncements Not Yet Effective</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Recent Accounting Pronouncements</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Improvements to Income Tax Disclosures</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In December 2023, the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued Accounting Standards Update (&#8220;ASU&#8221;) 2023-09, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Improvements to Income Tax Disclosures</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> (&#8220;ASU 2023-09&#8221;). ASU 2023-09 enhances the transparency of income tax disclosures, primarily by requiring public business entities to disclose on an annual basis, specific categories in the rate reconciliation tabular presentation, as well as by providing additional information for reconciling items that meet a quantitative threshold. The ASU also requires disaggregated disclosures of federal, state and foreign income taxes</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">paid. The new guidance is effective for fiscal years beginning after December 15, 2024. The Company does not expect implementation of the new guidance to have a material impact on its unaudited condensed consolidated financial statements.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Expense Disaggregation Disclosures</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">In November 2024, the FASB issued ASU 2024-03, Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40), which requires disclosure of specific information about costs and expenses within relevant expense captions on the face of the income statement, qualitative descriptions for expense captions not specifically disaggregated quantitatively, and the total amount and definition of selling expenses for interim and annual reporting periods. This standard is effective for the Company&#8217;s annual reporting period beginning January 1, 2027 and interim reporting periods beginning January 1, 2028 and should be applied on a retrospective or prospective basis, with early adoption permitted. We are currently assessing the impact of adopting this standard on our consolidated financial statements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Recent accounting pronouncements not yet effective.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BasisOfAccountingPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BasisOfAccountingPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskCreditRisk">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for credit risk. Includes, but is not limited to, policy for entering into master netting arrangement or similar agreement to mitigate credit risk of financial instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-9<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482836/275-10-55-6<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Related Disclosures (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Schedule of Changes in Deferred Revenue</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The changes in deferred revenue were as follows (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:47.51%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:10.822000000000001%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:10.142000000000001%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.602%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.602%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Beginning balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">45,437</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50,752</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">44,233</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">42,077</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;New billings</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">21,943</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,887</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50,362</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">57,924</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Revenue recognized during the year from beginning balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(15,533</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(19,550</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(23,484</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_567e21a0-9fe9-456e-832c-0ff085ea3142;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></span></span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(29,051</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_06429d32-4537-4ebc-86cc-d19d6502fed4;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></span></span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;&#160;Revenue recognized during the year from new billings</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(8,317</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(6,658</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27,581</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">21,519</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Ending balance</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">43,530</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">49,431</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">43,530</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">49,431</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock', window );">Schedule of Remaining Performance Obligations for Contractually Committed Revenues</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table presents remaining performance obligations for contractually committed revenues as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025 (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:47.5%;box-sizing:content-box;"></td>
         <td style="width:12.82%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:12.16%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:11.6%;box-sizing:content-box;"></td>
         <td style="width:1.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.6%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_a7f7bb7e-1cb0-40b4-bfe3-75e936ee0852;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Remainder of 2025</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30,049</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_8c796ba5-126f-4c87-bca3-8bedf08160f5;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2026</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">41,462</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_2fc23526-7ba6-46e0-9ebd-5e8619fff34b;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2027</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">24,201</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span><span style="-sec-ix-hidden:F_8bfe4752-f28e-4d06-a7bb-d5cf53a2fee9;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Thereafter</span></span></span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,214</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">99,926</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of expected timing for satisfying remaining performance obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets, Net (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Intangible Assets Net</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Intangible assets consist of the following (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"></td>
         <td style="width:13.28%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30, 2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-Average Amortization Period  (in years)</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Gross</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Net</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,470</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,226</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">18,244</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Acquired software technology</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,340</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,766</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">11,574</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Patents and intellectual property</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,081</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,505</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">576</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Tradename</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,100</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,228</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">872</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total intangible assets, net</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">45,991</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,725</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31,266</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"></td>
         <td style="width:13.28%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31, 2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-Average Amortization Period  (in years)</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Gross</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Accumulated Amortization</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Net</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Customer relationships</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,470</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,307</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,163</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Acquired software technology</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16,340</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,911</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,429</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Patents and intellectual property</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,068</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,411</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">657</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Tradename</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9</span></span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,100</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,167</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">933</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total intangible assets, net</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">45,978</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,796</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">33,182</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of Future Intangible Asset Amortization</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table presents future intangible asset amortization as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">June 30, 2025 (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:40.46%;box-sizing:content-box;"></td>
         <td style="width:13.28%;box-sizing:content-box;"></td>
         <td style="width:14.3%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:14.3%;box-sizing:content-box;"></td>
         <td style="width:1.68%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:12.3%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Remainder of 2025</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,899</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2026</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,809</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2027</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,809</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2028</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,758</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2029</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,650</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Thereafter</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">14,341</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;&#160;Total</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">31,266</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Details of Certain Condensed Consolidated Balance Sheet Accounts (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock', window );">Schedule of Accounts Receivable and Contract Assets, Net</a></td>
<td class="text"><p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Accounts receivable and contract assets, net (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.96%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Accounts receivable</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27,714</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19,635</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Contract assets</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,573</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,104</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Allowance for credit losses</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">544</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">275</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">30,743</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,464</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock', window );">Schedule of Prepaid Expenses and Other Current Assets</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Prepaid expenses and other current assets (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.96%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred commissions</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,592</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,477</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Prepaid software and licenses</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,356</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,306</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Prepaid insurance</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">154</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,069</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Short-term deposits</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">384</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">581</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other prepaid expenses</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">330</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">448</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,816</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,881</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock', window );">Schedule of Other Long-term Assets</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Other assets (long-term) (in thousands):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.96%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Deferred commissions</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,742</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,152</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Escrow claim</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">357</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">581</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">131</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">128</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,230</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,861</span></p></td>
         <td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">&#160;</span></p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock', window );">Schedule of Accrued Expenses and Other Current Liabilities</a></td>
<td class="text"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;">Accrued expenses and other current liabilities (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;">
        <tr style="visibility:collapse;">
         <td style="width:64.44%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.96%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:14.8%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">December 31,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Personnel-related accruals</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">5,410</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">8,252</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Operating lease liabilities, current</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">922</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">909</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Professional fees</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">169</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">137</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales/use tax payable</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">243</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">141</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Other</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">409</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">777</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"> </span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,153</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">10,216</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Schedule of accounts receivable and contract asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet; and other deferred costs.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the (a) 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 (accounts payable); (b) other payables; and (c) accrued liabilities. 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). An alternative caption includes accrued expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of noncurrent assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Income (Loss) per Share (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Summary of Computation of Basic and Diluted Net Income (Loss) per Share</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">The following table summarizes the computation of basic and diluted net income (loss) per share (in thousands, except share and per share data):</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:39.4%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Numerator:</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,120</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">752</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,604</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,661</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Denominator:</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Weighted-average shares outstanding, basic and diluted</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,712,191</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,792,952</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,680,456</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">12,781,910</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Net loss per share, basic and diluted</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.24</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.06</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.36</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">0.29</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock', window );">Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Loss per Share</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Th</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">e following potentially dilutive shares outstanding at the end of the periods presented were excluded in the calculation of diluted net loss per share as the effect would have been anti-dilutive:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:52.08%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.18%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.18%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.18%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.38%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Options to purchase common stock</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,772,338</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,796,901</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,772,338</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,796,901</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Restricted stock units exercisable and expected to vest</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,592,981</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,056,904</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,592,981</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,056,904</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Estimated number of shares issuable under 2017 ESPP</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,152</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,124</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">20,152</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">25,124</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,385,471</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,878,929</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,385,471</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,878,929</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Equity Incentive Plans (Tables)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Schedule of Stock Option Activity</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A summary of option activities under the 2005 Stock Plan, as amended in January 2010 and November 2012 (the &#8220;2005 Plan&#8221;) and 2017 Equity Incentive Plan (the &#8220;2017 Plan&#8221;) during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 is as follows:</span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:34.327%;box-sizing:content-box;"></td>
         <td style="width:1.02%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.162%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.48%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.102%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.48%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.102%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.72%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:9.102%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.48%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:10.022%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Number<br/>of Options<br/>Outstanding</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Exercise<br/>Price</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Grant Date Fair Value per Option</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Aggregate Intrinsic Value Exercised (in thousands)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Remaining Contractual term (in years)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Outstanding at December 31, 2024</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,774,388</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26.62</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">95,275</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">15.92</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">9.59</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercised</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4,104</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">4.48</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">46</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Canceled</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">93,221</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">23.86</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Outstanding at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,772,338</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26.24</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Exercisable at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,265,627</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">27.89</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Vested and expected to vest at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,772,338</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">26.24</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">951</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6.51</span></span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock', window );">Schedule of Unvested Restricted Stock Units Awards Activity</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">A summary of restricted stock unit (&#8220;RSU&#8221;) activities under the 2017 Plan during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">six months ended June 30, 2025 is as follows:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:46.589%;box-sizing:content-box;"></td>
         <td style="width:1.54%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:15.703%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:2.02%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:13.063%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:2.02%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:13.063%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Number<br/>of RSUs</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Weighted-<br/>Average<br/>Grant Date Fair Value per RSU</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Aggregate Fair Value of RSUs Vested (in thousands)</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Unvested RSUs at December 31, 2024</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">966,131</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19.04</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Granted</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,852,388</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16.10</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Vested</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">174,891</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">19.83</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,785</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Forfeited</span></p></td>
         <td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">50,647</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">)</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16.89</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Unvested RSUs at June 30, 2025</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,592,981</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">16.93</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Schedule of Stock-Based Compensation Expense for All Award Types Recorded in Consolidated Statements of Operations</a></td>
<td class="text"><p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;">Total stock-based compensation expense associated with the 2005 Plan, 2017 Plan and 2017 ESPP is recorded in the condensed consolidated statements of operations and was allocated as follows (in thousands):</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"> </span></p>
       <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
        <tr style="visibility:collapse;">
         <td style="width:39.4%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:1.64%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
         <td style="width:11.92%;box-sizing:content-box;"></td>
         <td style="width:1%;box-sizing:content-box;"></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Three Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">Six Months Ended June 30,</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;">
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2025</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;">2024</span></p></td>
         <td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Cost of revenues</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">620</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">399</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,268</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">839</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Sales and marketing</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">574</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">584</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,165</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,185</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Research and development</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">444</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">303</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">837</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">605</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;background-color:#ffffff;word-break:break-word;">
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">General and administrative</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">2,203</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">1,860</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,975</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,444</span></p></td>
         <td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
        <tr style="height:10pt;word-break:break-word;">
         <td style="background-color:#cff0fc;padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"><p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">Total</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,841</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">3,146</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">7,245</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;font-kerning:none;min-width:fit-content;">$</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;">6,073</span></p></td>
         <td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-kerning:none;min-width:fit-content;">&#160;</span></p></td>
        </tr>
       </table><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in outstanding nonvested restricted stock units.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Organization and Description of Business - Additional Information (Details)<br></strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 30, 2025 </div>
<div>Agencies </div>
<div>Universities </div>
<div>Customers </div>
<div>City </div>
<div>Subsidiary</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_BusinessAndNatureOfOperationsLineItems', window );"><strong>Business And Nature Of Operations [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfCustomers', window );">Number of customers</a></td>
<td class="nump">335<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfAgencies', window );">Number of agencies | Agencies</a></td>
<td class="nump">2,100<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates', window );">Number of universities and corporations in which entity operates | Universities</a></td>
<td class="nump">22<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfSubsidiary', window );">Number of subsidiary | Subsidiary</a></td>
<td class="nump">6<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember', window );">Maintenance and Support Services and Professional Software Development Services</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_BusinessAndNatureOfOperationsLineItems', window );"><strong>Business And Nature Of Operations [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfCustomers', window );">Number of customers</a></td>
<td class="nump">2<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_BusinessAndNatureOfOperationsLineItems', window );"><strong>Business And Nature Of Operations [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfCitiesInWhichEntityOperates', window );">Number of cities in which entity operates | City</a></td>
<td class="nump">179<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_BusinessAndNatureOfOperationsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business and nature of operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_BusinessAndNatureOfOperationsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_NumberOfAgencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of agencies</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_NumberOfAgencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_NumberOfCitiesInWhichEntityOperates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of cities in which entity operates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_NumberOfCitiesInWhichEntityOperates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_NumberOfCustomers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of customers.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_NumberOfCustomers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_NumberOfSubsidiary">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of subsidiary.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_NumberOfSubsidiary</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of universities and corporations in which entity operates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Additional Information (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jun. 30, 2025 </div>
<div>USD ($) </div>
<div>Customer</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>Customer</div>
</th>
<th class="th">
<div>Jun. 30, 2025 </div>
<div>USD ($) </div>
<div>Financialinstitution </div>
<div>Customer </div>
<div>Customers</div>
</th>
<th class="th">
<div>Jun. 30, 2024 </div>
<div>Customer</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>Customers</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfCustomers', window );">Number of customers | Customers</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">335<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 8,950<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,950<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13,183<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember', window );">Customer Concentration Risk | Accounts Receivable and Contract Assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfCustomers', window );">Number of customers | Customers</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember', window );">Customer Concentration Risk | Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfCustomers', window );">Number of customers | Customer</a></td>
<td class="nump">1<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember', window );">Customer Concentration Risk | Customer One | Accounts Receivable and Contract Assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">32.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember', window );">Customer Concentration Risk | Customer One | Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="nump">25.00%<span></span>
</td>
<td class="nump">25.00%<span></span>
</td>
<td class="nump">31.00%<span></span>
</td>
<td class="nump">26.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember', window );">Customer Concentration Risk | Customer Two | Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Concentration risk percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CreditConcentrationRiskMember', window );">Credit Concentration Risk | United States</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained', window );">Number of financial institutions at which cash deposits are maintained | Financialinstitution</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CreditConcentrationRiskMember', window );">Credit Concentration Risk | International</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained', window );">Number of financial institutions at which cash deposits are maintained | Financialinstitution</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CreditConcentrationRiskMember', window );">Credit Concentration Risk | Domestic Financial Institution One</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 7,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CreditConcentrationRiskMember', window );">Credit Concentration Risk | Domestic Financial Institution Two</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">13,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CreditConcentrationRiskMember', window );">Credit Concentration Risk | Domestic Financial Institution Three</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountingPoliciesLineItems', window );"><strong>Accounting Policies [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 114,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 114,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_AccountingPoliciesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accounting policies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_AccountingPoliciesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_NumberOfCustomers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of customers.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_NumberOfCustomers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of financial institutions at which cash deposits are maintained.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 275<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ssti_CustomerOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ssti_CustomerOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=ssti_CustomerTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=ssti_CustomerTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CreditConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CreditConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=us-gaap_NonUsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=us-gaap_NonUsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=ssti_DomesticFinancialInstitutionOneMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=ssti_DomesticFinancialInstitutionOneMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=ssti_DomesticFinancialInstitutionTwoMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=ssti_DomesticFinancialInstitutionTwoMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=ssti_DomesticFinancialInstitutionThreeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CounterpartyNameAxis=ssti_DomesticFinancialInstitutionThreeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Related Disclosures - Schedule of Changes in Deferred Revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Beginning balance</a></td>
<td class="nump">$ 44,233<span></span>
</td>
<td class="nump">$ 42,077<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress', window );">New billings</a></td>
<td class="nump">50,362<span></span>
</td>
<td class="nump">57,924<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiability', window );">Ending balance</a></td>
<td class="nump">43,530<span></span>
</td>
<td class="nump">49,431<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerDurationAxis=ssti_RecognitionFromBeginningDeferredRevenueBalanceMember', window );">Recognition From Balance at the Beginning of the Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue recognized during the year</a></td>
<td class="num">(23,484)<span></span>
</td>
<td class="num">(29,051)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerDurationAxis=ssti_RecognitionFromNewBillingsOfDeferredRevenueMember', window );">Revenue Recognized During the Year from New Billings</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Revenue recognized during the year</a></td>
<td class="num">$ (27,581)<span></span>
</td>
<td class="num">$ (21,519)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from change in measure of progress which (increases) decreases obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerDurationAxis=ssti_RecognitionFromBeginningDeferredRevenueBalanceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerDurationAxis=ssti_RecognitionFromBeginningDeferredRevenueBalanceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerDurationAxis=ssti_RecognitionFromNewBillingsOfDeferredRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerDurationAxis=ssti_RecognitionFromNewBillingsOfDeferredRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 30, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Estimated remaining performance obligations for contractually committed revenues</a></td>
<td class="nump">$ 99,926<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-07-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-07-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Estimated remaining performance obligations for contractually committed revenues</a></td>
<td class="nump">$ 30,049<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Estimated remaining performance obligations for contractually committed revenues recognition period</a></td>
<td class="text">6 months<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Estimated remaining performance obligations for contractually committed revenues</a></td>
<td class="nump">$ 41,462<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Estimated remaining performance obligations for contractually committed revenues recognition period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2027-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2027-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Estimated remaining performance obligations for contractually committed revenues</a></td>
<td class="nump">$ 24,201<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Estimated remaining performance obligations for contractually committed revenues recognition period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2028-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2028-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Estimated remaining performance obligations for contractually committed revenues</a></td>
<td class="nump">$ 4,214<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Estimated remaining performance obligations for contractually committed revenues recognition period</a></td>
<td class="text"> <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-07-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2025-07-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2026-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2027-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2027-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2028-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2028-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues 1 (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 30, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems', window );"><strong>Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Estimated remaining performance obligations for contractually committed revenues</a></td>
<td class="nump">$ 99,926<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transaction price allocated to performance obligation that has not been recognized as revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Related Disclosures - Additional Information (Details) - USD ($)<br> $ in Millions</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ssti_SubscriptionMaintenanceAndSupportServicesMember', window );">Subscription, maintenance and support services Member</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="nump">$ 25.6<span></span>
</td>
<td class="nump">$ 26.0<span></span>
</td>
<td class="nump">$ 53.6<span></span>
</td>
<td class="nump">$ 50.6<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=ssti_ProfessionalSoftwareDevelopmentServicesMember', window );">Professional software development services member</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="nump">0.3<span></span>
</td>
<td class="nump">1.0<span></span>
</td>
<td class="nump">0.7<span></span>
</td>
<td class="nump">1.8<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="nump">25.2<span></span>
</td>
<td class="nump">26.3<span></span>
</td>
<td class="nump">52.7<span></span>
</td>
<td class="nump">51.1<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_ZA', window );">South Africa</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="nump">0.7<span></span>
</td>
<td class="nump">0.7<span></span>
</td>
<td class="nump">1.5<span></span>
</td>
<td class="nump">1.3<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_BS', window );">Bahamas</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="nump">0.7<span></span>
</td>
<td class="nump">$ 0.7<span></span>
</td>
<td class="nump">1.5<span></span>
</td>
<td class="nump">$ 1.3<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_SouthAmericaMember', window );">South America</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation Of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenues</a></td>
<td class="nump">$ 0.7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.5<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ssti_SubscriptionMaintenanceAndSupportServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ssti_SubscriptionMaintenanceAndSupportServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=ssti_ProfessionalSoftwareDevelopmentServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=ssti_ProfessionalSoftwareDevelopmentServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_ZA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_ZA</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_BS">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_BS</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_SouthAmericaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_SouthAmericaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Acquisitions - Summary of Assignment of Fair Value to Identified Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Combination [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 34,213<span></span>
</td>
<td class="nump">$ 34,213<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-4<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-47<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-5<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-3<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-4A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-4<br><br>Reference 22: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-4A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-4A<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-4<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br><br>Reference 37: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-41<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478064/805-740-55-13<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 39<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-39<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Aug. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems', window );"><strong>Fair Value Liabilities Measured On Recurring Basis Unobservable Input Reconciliation [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet', window );">Transfers into or out of level 3</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MoneyMarketFundsAtCarryingValue', window );">Money market fund amount</a></td>
<td class="nump">$ 6,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member', window );">Level 3</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems', window );"><strong>Fair Value Liabilities Measured On Recurring Basis Unobservable Input Reconciliation [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_PercentageOfAssetsFairValueAdjustment', window );">Percentage of assets, fair value adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">76.10%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_PercentageOfRevenueVolatility', window );">Percentage of revenue volatility</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">25.80%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ssti_SafepointeLLCMember', window );">SafePointe, LLC | Level 3</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems', window );"><strong>Fair Value Liabilities Measured On Recurring Basis Unobservable Input Reconciliation [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure', window );">Estimated fair value of contingent consideration liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,000,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=ssti_SafepointeLLCMember', window );">SafePointe, LLC | Fair Value Measurements Recurring | Level 3</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems', window );"><strong>Fair Value Liabilities Measured On Recurring Basis Unobservable Input Reconciliation [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure', window );">Estimated fair value of contingent consideration liability</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease', window );">Change in fair value of contingent consideration</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0.6<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_PercentageOfAssetsFairValueAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of assets, fair value adjustment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_PercentageOfAssetsFairValueAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_PercentageOfRevenueVolatility">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of revenue volatility.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_PercentageOfRevenueVolatility</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of contingent consideration in a business combination that is classified in shareholders' equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of transfers of financial instrument classified as a liability into (out of) level 3 of the fair value hierarchy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MoneyMarketFundsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three-years ago does not become a cash equivalent when its remaining maturity is three months.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MoneyMarketFundsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=ssti_SafepointeLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=ssti_SafepointeLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Goodwill - Schedule of Changes in Goodwill (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jun. 30, 2025 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillLineItems', window );"><strong>Goodwill [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Beginning balance</a></td>
<td class="nump">$ 34,213<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Ending balance</a></td>
<td class="nump">$ 34,213<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479328/805-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-41<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 740<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478064/805-740-55-13<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 39<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-39<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets, Net - Schedule of Intangible Assets Net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross</a></td>
<td class="nump">$ 45,991<span></span>
</td>
<td class="nump">$ 45,978<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(14,725)<span></span>
</td>
<td class="num">(12,796)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 31,266<span></span>
</td>
<td class="nump">$ 33,182<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer Relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Weighted Average Amortization Period (in years)</a></td>
<td class="text">14 years<span></span>
</td>
<td class="text">14 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross</a></td>
<td class="nump">$ 25,470<span></span>
</td>
<td class="nump">$ 25,470<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(7,226)<span></span>
</td>
<td class="num">(6,307)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 18,244<span></span>
</td>
<td class="nump">$ 19,163<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ssti_AcquiredSoftwareTechnologyMember', window );">Acquired Software Technology</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Weighted Average Amortization Period (in years)</a></td>
<td class="text">9 years<span></span>
</td>
<td class="text">9 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross</a></td>
<td class="nump">$ 16,340<span></span>
</td>
<td class="nump">$ 16,340<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(4,766)<span></span>
</td>
<td class="num">(3,911)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 11,574<span></span>
</td>
<td class="nump">$ 12,429<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ssti_PatentsAndIntellectualPropertyMember', window );">Patents and Intellectual Property</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Weighted Average Amortization Period (in years)</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">3 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross</a></td>
<td class="nump">$ 2,081<span></span>
</td>
<td class="nump">$ 2,068<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(1,505)<span></span>
</td>
<td class="num">(1,411)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 576<span></span>
</td>
<td class="nump">$ 657<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember', window );">Tradename</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Weighted Average Amortization Period (in years)</a></td>
<td class="text">9 years<span></span>
</td>
<td class="text">9 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross</a></td>
<td class="nump">$ 2,100<span></span>
</td>
<td class="nump">$ 2,100<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(1,228)<span></span>
</td>
<td class="num">(1,167)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 872<span></span>
</td>
<td class="nump">$ 933<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 928<br> -SubTopic 340<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478859/928-340-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 16: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 29<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-29<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 29<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-29<br><br>Reference 21: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 22: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 24: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 26: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 27: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 28: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ssti_AcquiredSoftwareTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ssti_AcquiredSoftwareTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ssti_PatentsAndIntellectualPropertyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=ssti_PatentsAndIntellectualPropertyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets, Net - Additional Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Intangible amortization expense</a></td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="nump">$ 1,931<span></span>
</td>
<td class="nump">$ 1,929<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-11<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-24<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets, Net - Schedule of Future Intangible Asset Amortization (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear', window );">Remainder of 2025</a></td>
<td class="nump">$ 1,899<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2026</a></td>
<td class="nump">3,809<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2027</a></td>
<td class="nump">3,809<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2028</a></td>
<td class="nump">3,758<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2029</a></td>
<td class="nump">3,650<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour', window );">Thereafter</a></td>
<td class="nump">14,341<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Total</a></td>
<td class="nump">$ 31,266<span></span>
</td>
<td class="nump">$ 33,182<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 38<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-38<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 14: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 16: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 18: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-31<br><br>Reference 19: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 29<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-29<br><br>Reference 20: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 29<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-29<br><br>Reference 21: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 22: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-20<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 24: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 25: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 26: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 27: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479876/805-20-55-14<br><br>Reference 28: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -SubTopic 30<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accounts Receivable and Contract Assets, Net (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract', window );"><strong>Balance Sheet Related Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable</a></td>
<td class="nump">$ 27,714<span></span>
</td>
<td class="nump">$ 19,635<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Contract assets</a></td>
<td class="nump">3,573<span></span>
</td>
<td class="nump">6,104<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_FinancingReceivableAllowanceForCreditLossesAdjustment', window );">Allowance for credit losses</a></td>
<td class="num">(544)<span></span>
</td>
<td class="num">(275)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccountsReceivableAndContractAssetCurrent', window );">Accounts receivable and contract assets</a></td>
<td class="nump">$ 30,743<span></span>
</td>
<td class="nump">$ 25,464<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_AccountsReceivableAndContractAssetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accounts receivable and contract asset current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_AccountsReceivableAndContractAssetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_FinancingReceivableAllowanceForCreditLossesAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Financing receivable allowance for credit losses adjustment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_FinancingReceivableAllowanceForCreditLossesAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetRelatedDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetRelatedDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Prepaid Expenses and Other Current Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract', window );"><strong>Prepaid Expense and Other Assets, Current [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredCostsCurrent', window );">Deferred commissions</a></td>
<td class="nump">$ 1,592<span></span>
</td>
<td class="nump">$ 1,477<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_PrepaidSoftwareAndLicensesCurrent', window );">Prepaid software and licenses</a></td>
<td class="nump">2,356<span></span>
</td>
<td class="nump">1,306<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidInsurance', window );">Prepaid insurance</a></td>
<td class="nump">154<span></span>
</td>
<td class="nump">1,069<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_ShortTermDeposits', window );">Short-term deposits</a></td>
<td class="nump">384<span></span>
</td>
<td class="nump">581<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherPrepaidExpenseCurrent', window );">Other prepaid expenses</a></td>
<td class="nump">330<span></span>
</td>
<td class="nump">448<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Total</a></td>
<td class="nump">$ 4,816<span></span>
</td>
<td class="nump">$ 4,881<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_PrepaidSoftwareAndLicensesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Prepaid software and licenses current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_PrepaidSoftwareAndLicensesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_ShortTermDeposits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Short-term deposits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_ShortTermDeposits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCostsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts as of the balance sheet date of deferred costs capitalized at the end of the reporting period that are expected to be charged against earnings within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCostsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherPrepaidExpenseCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for other costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483032/340-10-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherPrepaidExpenseCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidInsurance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for insurance that provides economic benefits within a future period of one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483032/340-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 340<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482955/340-10-05-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidInsurance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Other Long-term Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrentDisclosureAbstract', window );"><strong>Other Assets Noncurrent Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredCosts', window );">Deferred commissions</a></td>
<td class="nump">$ 2,742<span></span>
</td>
<td class="nump">$ 3,152<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_EscrowClaimReceivable', window );">Escrow claim</a></td>
<td class="nump">357<span></span>
</td>
<td class="nump">581<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsMiscellaneousNoncurrent', window );">Other</a></td>
<td class="nump">131<span></span>
</td>
<td class="nump">128<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Total other assets</a></td>
<td class="nump">$ 3,230<span></span>
</td>
<td class="nump">$ 3,861<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_EscrowClaimReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Escrow claim receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_EscrowClaimReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred cost, excluding capitalized cost related to contract with customer; classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsMiscellaneousNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of other miscellaneous assets expected to be realized or consumed after one year or normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsMiscellaneousNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrentDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrentDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accrued Expenses and Other Current Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract', window );"><strong>Accrued Expenses And Other Current Liabilities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedEmployeeBenefitsCurrent', window );">Personnel-related accruals</a></td>
<td class="nump">$ 5,410<span></span>
</td>
<td class="nump">$ 8,252<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities, current</a></td>
<td class="nump">922<span></span>
</td>
<td class="nump">909<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedProfessionalFeesCurrent', window );">Professional fees</a></td>
<td class="nump">169<span></span>
</td>
<td class="nump">137<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SalesAndExciseTaxPayableCurrent', window );">Sales/ use tax payable</a></td>
<td class="nump">243<span></span>
</td>
<td class="nump">141<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">409<span></span>
</td>
<td class="nump">777<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities', window );">Accrued expenses and other current liabilities</a></td>
<td class="nump">$ 7,153<span></span>
</td>
<td class="nump">$ 10,216<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accrued expenses and other current liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedEmployeeBenefitsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations, excluding pension and other postretirement benefits, incurred through that date and payable for perquisites provided to employees pertaining to services received from them. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedEmployeeBenefitsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesAndOtherLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesAndOtherLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedProfessionalFeesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedProfessionalFeesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SalesAndExciseTaxPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred through that date and payable for statutory sales and use taxes, including value added tax. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SalesAndExciseTaxPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Related Party Transactions - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionAxis=ssti_SoundthinkingMember', window );">SoundThinking</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RelatedPartyTransactionLineItems', window );"><strong>Related Party Transaction [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Revenues', window );">Revenue from related parties</a></td>
<td class="nump">$ 7,000<span></span>
</td>
<td class="nump">$ 47,000<span></span>
</td>
<td class="nump">$ 18,000<span></span>
</td>
<td class="nump">$ 80,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483326/850-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483326/850-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 850<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483326/850-10-50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-13<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(c)(2)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(c)(2)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(2)(g)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Revenues">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478671/942-235-S50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-14<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 944<br> -SubTopic 605<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477548/944-605-55-11<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 15: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Revenues</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RelatedPartyTransactionAxis=ssti_SoundthinkingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RelatedPartyTransactionAxis=ssti_SoundthinkingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent', window );">Restructured workforce percentage of eliminated headcount</a></td>
<td class="nump">3.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember', window );">Accrued Expenses and Other Current Liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveCurrent', window );">Restructuring liabilities</a></td>
<td class="nump">$ 200,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember', window );">Employee Severance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring expense</a></td>
<td class="nump">$ 300,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration', window );">Restructuring Charges, Statement of Income or Comprehensive Income [Extensible Enumeration]</a></td>
<td class="text">Other Nonoperating Income (Expense)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=ssti_LeaseTerminationMember', window );">Lease Termination</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring expense</a></td>
<td class="nump">$ 100,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration', window );">Restructuring Charges, Statement of Income or Comprehensive Income [Extensible Enumeration]</a></td>
<td class="text">Other Nonoperating Income (Expense)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of positions eliminated during the period as a percentage of total positions eliminated during the period in connection with the restructuring plan(s).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-18<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482047/420-10-45-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-21<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476148/220-40-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates line item in statement of income or comprehensive income that includes restructuring charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringReserveCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of known and estimated obligations associated with exit from or disposal of business activities or restructurings pursuant to a duly authorized plan, which are expected to be paid in the next twelve months or in the normal operating cycle if longer. Costs of such activities include those for one-time termination benefits, termination of an operating lease or other contract, consolidating or closing facilities, relocating employees, and costs associated with an ongoing benefit arrangement, but excludes costs associated with the retirement of a long-lived asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserveCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetLocationAxis=ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetLocationAxis=ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=ssti_LeaseTerminationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveAxis=ssti_LeaseTerminationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock Repurchase Program - Additional Information (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Mar. 31, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock amount</a></td>
<td class="nump">$ 470<span></span>
</td>
<td class="nump">$ 504<span></span>
</td>
<td class="nump">$ 1,999<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ShareRepurchaseProgramAxis=ssti_StockRepurchaseProgramMember', window );">Stock Repurchase Program</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">134,150<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TreasuryStockAcquiredAverageCostPerShare', window );">Average price per share</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 14.92<span></span>
</td>
<td class="nump">$ 14.86<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ClassOfStockLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-8A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 6: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483014/272-10-45-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482987/272-10-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(27)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfStockLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TreasuryStockAcquiredAverageCostPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total cost of shares repurchased divided by the total number of shares repurchased.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 505<br> -SubTopic 30<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481549/505-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TreasuryStockAcquiredAverageCostPerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ShareRepurchaseProgramAxis=ssti_StockRepurchaseProgramMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ShareRepurchaseProgramAxis=ssti_StockRepurchaseProgramMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Income (Loss) per Share - Summary of Computation of Basic and Diluted Net Income (Loss) per Share (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="4">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Mar. 31, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Mar. 31, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLossAbstract', window );"><strong>Numerator:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net loss</a></td>
<td class="num">$ (3,120)<span></span>
</td>
<td class="num">$ (1,484)<span></span>
</td>
<td class="num">$ (752)<span></span>
</td>
<td class="num">$ (2,909)<span></span>
</td>
<td class="num">$ (4,604)<span></span>
</td>
<td class="num">$ (3,661)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract', window );"><strong>Denominator:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Weighted-average shares outstanding, basic</a></td>
<td class="nump">12,712,191<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,792,952<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,680,456<span></span>
</td>
<td class="nump">12,781,910<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Weighted-average shares outstanding, diluted</a></td>
<td class="nump">12,712,191<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,792,952<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,680,456<span></span>
</td>
<td class="nump">12,781,910<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net loss per share, basic</a></td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.36)<span></span>
</td>
<td class="num">$ (0.29)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net loss per share, diluted</a></td>
<td class="num">$ (0.24)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.06)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (0.36)<span></span>
</td>
<td class="num">$ (0.29)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-21<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 220<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476153/220-40-55-14<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480738/235-10-S50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(k)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479857/480-10-S50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479887/480-10-S45-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 480<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3A<br> -Subparagraph (24)(d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480244/480-10-S99-3A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 9<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-9<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 17<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480336/718-10-65-17<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 19: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 34: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 37: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 38: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 39: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 40: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 41: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 42: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 43: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 44: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 45: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 46: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 47: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 48: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (f)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481538/470-20-65-4<br><br>Reference 49: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Net Income (Loss) per Share - Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Income (Loss) per Share (Details) - shares<br></strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded From Computation Of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total</a></td>
<td class="nump">4,385,471<span></span>
</td>
<td class="nump">2,878,929<span></span>
</td>
<td class="nump">4,385,471<span></span>
</td>
<td class="nump">2,878,929<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember', window );">Employee Stock Option</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded From Computation Of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total</a></td>
<td class="nump">1,772,338<span></span>
</td>
<td class="nump">1,796,901<span></span>
</td>
<td class="nump">1,772,338<span></span>
</td>
<td class="nump">1,796,901<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=ssti_UnvestedRestrictedStockUnitsMember', window );">Unvested Restricted Stock Units</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded From Computation Of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Total</a></td>
<td class="nump">2,592,981<span></span>
</td>
<td class="nump">1,056,904<span></span>
</td>
<td class="nump">2,592,981<span></span>
</td>
<td class="nump">1,056,904<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=ssti_UnvestedRestrictedStockUnitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=ssti_UnvestedRestrictedStockUnitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Equity Incentive Plans - Schedule of Stock Option Activity (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th"><div>Jun. 30, 2025</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Options Outstanding, Beginning Balance</a></td>
<td class="nump">1,774,388<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross', window );">Number of Options Outstanding, Granted</a></td>
<td class="nump">95,275<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Number of Options Outstanding, Exercised</a></td>
<td class="num">(4,104)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod', window );">Number of Options Outstanding, Canceled</a></td>
<td class="num">(93,221)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Number of Options Outstanding, Ending Balance</a></td>
<td class="nump">1,772,338<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Number of options, exercisable</a></td>
<td class="nump">1,265,627<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber', window );">Number of options, vested and expected to vest</a></td>
<td class="nump">1,772,338<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Beginning Balance</a></td>
<td class="nump">$ 26.62<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Granted</a></td>
<td class="nump">15.92<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Exercised</a></td>
<td class="nump">4.48<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Canceled</a></td>
<td class="nump">23.86<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Weighted Average Exercise Price, Ending Balance</a></td>
<td class="nump">26.24<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Weighted- average exercise price per share, exercisable</a></td>
<td class="nump">27.89<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Weighted- average exercise price per share, vested and expected to vest</a></td>
<td class="nump">26.24<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract', window );"><strong>Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value per Option, Granted</a></td>
<td class="nump">$ 9.59<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Aggregate Intrinsic Value Exercised</a></td>
<td class="nump">$ 46<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Aggregate intrinsic value, vested and expected to vest</a></td>
<td class="nump">$ 951<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Weighted- average remaining contractual term (in years), vested and expected to vest</a></td>
<td class="text">6 years 6 months 3 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Equity Incentive Plans - Additional Information (Details) - USD ($)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 01, 2025</div></th>
<th class="th"><div>Feb. 28, 2025</div></th>
<th class="th"><div>May 31, 2017</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2017</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward', window );">Employee stock purchase plan, description</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">The 2017 ESPP provides for a six-month offering period. At the end of the purchase period, eligible employees are permitted to purchase shares of common stock at the lower of 85% of the fair market value at the beginning or end of the offering period subject to tax limitations on the total value of the purchase.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 3,841<span></span>
</td>
<td class="nump">$ 3,146<span></span>
</td>
<td class="nump">$ 7,245<span></span>
</td>
<td class="nump">$ 6,073<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Unit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of RSUs, Granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,852,388<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Grant Date Fair Value, Granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 16.1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Vested fair value amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,785<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=ssti_PerformanceBasedRestrictedStockUnitRSUMember', window );">Performance-based RSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of RSUs, Granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">813,348<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">544,228<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Grant Date Fair Value, Granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 16.43<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17.74<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">200<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
<td class="nump">$ 500<span></span>
</td>
<td class="nump">$ 400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement', window );">Expense related to achievement of the minimum target</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember', window );">2017 Employee Stock Purchase Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate', window );">Percentage of payroll deductions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_EmployeeStockPurchasePlanOfferingPeriod', window );">Employee stock purchase plan offering period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_CommonStockFairMarketValuePercentage', window );">Common stock fair market value percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">85.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod', window );">Shares of common stock reserved for issuance, automatic annual increase initiation period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">--01-01<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum', window );">Percentage of number of shares of common stock outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance', window );">Increase in common stock reserved for issuance</a></td>
<td class="nump">150,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance', window );">Periodic increment of common stock reserved for future issuance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">150,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ssti_TwoThousandSeventeenEquityIncentivePlanMember', window );">2017 Equity Incentive Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod', window );">Shares of common stock reserved for issuance, automatic annual increase initiation period</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">--01-01<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum', window );">Percentage of number of shares of common stock outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate', window );">Shares of common stock reserved for issuance, automatic annual increase start date</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Jan.  01,  2018<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate', window );">Shares of common stock reserved for issuance, automatic annual increase end date</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">Jan.  01,  2027<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance', window );">Increase in common stock reserved for issuance</a></td>
<td class="nump">631,724<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=ssti_PSU-BasedPerformanceBonusPlanMember', window );">PSU-Based Performance Bonus Plan | Performance-based RSU</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of RSUs, Granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">133,261<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">448,222<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Grant Date Fair Value, Granted</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 15.12<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 15.51<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Vested fair value amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_CommonStockFairMarketValuePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Common stock fair market value percentage.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_CommonStockFairMarketValuePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_EmployeeStockPurchasePlanOfferingPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Employee stock purchase plan offering period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_EmployeeStockPurchasePlanOfferingPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase in common stock capital shares reserved for future issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Periodic increment of common stock capital shares reserved for future issuance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share-based payment arrangement, expense after target achievement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Shares of common stock reserved for issuance, automatic annual increase end date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Shares of common stock reserved for issuance automatic annual increase initiation period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Shares of common stock reserved for issuance automatic annual increase start date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ssti_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479983/718-10-S45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The highest percentage of annual salary that an employee is permitted to utilize with respect to the plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum number of shares that may be issued in accordance with the plan as a proportion of outstanding capital stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Description of terms of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=ssti_PerformanceBasedRestrictedStockUnitRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=ssti_PerformanceBasedRestrictedStockUnitRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=ssti_TwoThousandSeventeenEquityIncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=ssti_TwoThousandSeventeenEquityIncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=ssti_PSU-BasedPerformanceBonusPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=ssti_PSU-BasedPerformanceBonusPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Equity Incentive Plans - Schedule of Unvested Restricted Stock Units Awards Activity - (Details) - Restricted Stock Unit<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="1">6 Months Ended</th>
</tr>
<tr><th class="th">
<div>Jun. 30, 2025 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share Based Compensation Arrangement By Share Based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Number of RSUs, Beginning Balance | shares</a></td>
<td class="nump">966,131<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Number of RSUs, Granted | shares</a></td>
<td class="nump">1,852,388<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Number of RSUs, Vested | shares</a></td>
<td class="num">(174,891)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Number of RSUs, Forfeited | shares</a></td>
<td class="num">(50,647)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Number of RSUs, Ending Balance | shares</a></td>
<td class="nump">2,592,981<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value per RSU, Beginning Balance | $ / shares</a></td>
<td class="nump">$ 19.04<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value per RSU, Granted | $ / shares</a></td>
<td class="nump">16.1<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value per RSU, Vested | $ / shares</a></td>
<td class="nump">19.83<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value per RSU, Forfeited | $ / shares</a></td>
<td class="nump">16.89<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Weighted Average Grant Date Fair Value per RSU, Ending Balance | $ / shares</a></td>
<td class="nump">$ 16.93<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Aggregate Fair Value of RSUs' Vested | $</a></td>
<td class="nump">$ 2,785<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.2</span><table class="report" border="0" cellspacing="2" id="id2">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Equity Incentive Plans - Schedule of Stock-Based Compensation Expense Recorded in Condensed Consolidated Statements of Operations (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="2">6 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
<th class="th"><div>Jun. 30, 2025</div></th>
<th class="th"><div>Jun. 30, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 3,841<span></span>
</td>
<td class="nump">$ 3,146<span></span>
</td>
<td class="nump">$ 7,245<span></span>
</td>
<td class="nump">$ 6,073<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember', window );">Cost of Revenues</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">620<span></span>
</td>
<td class="nump">399<span></span>
</td>
<td class="nump">1,268<span></span>
</td>
<td class="nump">839<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember', window );">Sales and Marketing</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">574<span></span>
</td>
<td class="nump">584<span></span>
</td>
<td class="nump">1,165<span></span>
</td>
<td class="nump">1,185<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research and Development</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">444<span></span>
</td>
<td class="nump">303<span></span>
</td>
<td class="nump">837<span></span>
</td>
<td class="nump">605<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember', window );">General and Administrative</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 2,203<span></span>
</td>
<td class="nump">$ 1,860<span></span>
</td>
<td class="nump">$ 3,975<span></span>
</td>
<td class="nump">$ 3,444<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479983/718-10-S45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_SellingAndMarketingExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_GeneralAndAdministrativeExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// 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)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* 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;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.2</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>173</ContextCount>
  <ElementCount>242</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>48</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>11</UnitCount>
  <MyReports>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>75000 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>75010 - Statement - Condensed Consolidated Balance Sheets (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>75020 - Statement - Condensed Consolidated Balance Sheets (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>75030 - Statement - Condensed Consolidated Statements of Operations (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited</Role>
      <ShortName>Condensed Consolidated Statements of Operations (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>75040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited</Role>
      <ShortName>Condensed Consolidated Statements of Comprehensive Loss (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>75050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited</Role>
      <ShortName>Condensed Consolidated Statements of Stockholders' Equity (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>75060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>995455 - Disclosure - Organization and Description of Business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusiness</Role>
      <ShortName>Organization and Description of Business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>995465 - Disclosure - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>995475 - Disclosure - Revenue Related Disclosures</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosures</Role>
      <ShortName>Revenue Related Disclosures</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>995495 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>995515 - Disclosure - Intangible Assets, Net</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNet1</Role>
      <ShortName>Intangible Assets, Net</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>995525 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts</Role>
      <ShortName>Details of Certain Condensed Consolidated Balance Sheet Accounts</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>995535 - Disclosure - Related Party Transactions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactions</Role>
      <ShortName>Related Party Transactions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>995545 - Disclosure - Restructuring</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuring</Role>
      <ShortName>Restructuring</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>995555 - Disclosure - Stock Repurchase Program</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgram</Role>
      <ShortName>Stock Repurchase Program</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>995565 - Disclosure - Net Income (Loss) per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShare</Role>
      <ShortName>Net Income (Loss) per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>995575 - Disclosure - Equity Incentive Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlans</Role>
      <ShortName>Equity Incentive Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>995585 - Disclosure - Financing Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangements1</Role>
      <ShortName>Financing Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>995595 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>995615 - Disclosure - Summary of Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>995625 - Disclosure - Revenue Related Disclosures (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresTables</Role>
      <ShortName>Revenue Related Disclosures (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosures</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>995665 - Disclosure - Intangible Assets, Net (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetTables</Role>
      <ShortName>Intangible Assets, Net (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNet1</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>995675 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables</Role>
      <ShortName>Details of Certain Condensed Consolidated Balance Sheet Accounts (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts</ParentRole>
      <Position>26</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>995685 - Disclosure - Net Income (Loss) per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables</Role>
      <ShortName>Net Income (Loss) per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShare</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>995695 - Disclosure - Equity Incentive Plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansTables</Role>
      <ShortName>Equity Incentive Plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlans</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995705 - Disclosure - Organization and Description of Business - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails</Role>
      <ShortName>Organization and Description of Business - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995715 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>995725 - Disclosure - Revenue Related Disclosures - Schedule of Changes in Deferred Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails</Role>
      <ShortName>Revenue Related Disclosures - Schedule of Changes in Deferred Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>995735 - Disclosure - Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails</Role>
      <ShortName>Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>995745 - Disclosure - Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues 1 (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details</Role>
      <ShortName>Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues 1 (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>995755 - Disclosure - Revenue Related Disclosures - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails</Role>
      <ShortName>Revenue Related Disclosures - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>995775 - Disclosure - Acquisitions - Summary of Assignment of Fair Value to Identified Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails</Role>
      <ShortName>Acquisitions - Summary of Assignment of Fair Value to Identified Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>995785 - Disclosure - Fair Value Measurements - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails</Role>
      <ShortName>Fair Value Measurements - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>995805 - Disclosure - Goodwill - Schedule of Changes in Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails</Role>
      <ShortName>Goodwill - Schedule of Changes in Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>37</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>995815 - Disclosure - Intangible Assets, Net - Schedule of Intangible Assets Net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails</Role>
      <ShortName>Intangible Assets, Net - Schedule of Intangible Assets Net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>38</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>995825 - Disclosure - Intangible Assets, Net - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetAdditionalInformationDetails</Role>
      <ShortName>Intangible Assets, Net - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>39</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>995835 - Disclosure - Intangible Assets, Net - Schedule of Future Intangible Asset Amortization (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails</Role>
      <ShortName>Intangible Assets, Net - Schedule of Future Intangible Asset Amortization (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>40</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>995845 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accounts Receivable and Contract Assets, Net (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails</Role>
      <ShortName>Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accounts Receivable and Contract Assets, Net (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>995855 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Prepaid Expenses and Other Current Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails</Role>
      <ShortName>Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Prepaid Expenses and Other Current Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>42</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>995865 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Other Long-term Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails</Role>
      <ShortName>Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Other Long-term Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>995875 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accrued Expenses and Other Current Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails</Role>
      <ShortName>Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accrued Expenses and Other Current Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>995885 - Disclosure - Related Party Transactions - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails</Role>
      <ShortName>Related Party Transactions - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>995895 - Disclosure - Restructuring - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails</Role>
      <ShortName>Restructuring - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>995905 - Disclosure - Stock Repurchase Program - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails</Role>
      <ShortName>Stock Repurchase Program - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>995915 - Disclosure - Net Income (Loss) per Share - Summary of Computation of Basic and Diluted Net Income (Loss) per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails</Role>
      <ShortName>Net Income (Loss) per Share - Summary of Computation of Basic and Diluted Net Income (Loss) per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>995925 - Disclosure - Net Income (Loss) per Share - Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Income (Loss) per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails</Role>
      <ShortName>Net Income (Loss) per Share - Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Income (Loss) per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>995945 - Disclosure - Equity Incentive Plans - Schedule of Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails</Role>
      <ShortName>Equity Incentive Plans - Schedule of Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>995955 - Disclosure - Equity Incentive Plans - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails</Role>
      <ShortName>Equity Incentive Plans - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>995965 - Disclosure - Equity Incentive Plans - Schedule of Unvested Restricted Stock Units Awards Activity - (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails</Role>
      <ShortName>Equity Incentive Plans - Schedule of Unvested Restricted Stock Units Awards Activity - (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="ssti-20250630.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>995975 - Disclosure - Equity Incentive Plans - Schedule of Stock-Based Compensation Expense Recorded in Condensed Consolidated Statements of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails</Role>
      <ShortName>Equity Incentive Plans - Schedule of Stock-Based Compensation Expense Recorded in Condensed Consolidated Statements of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-Q" isDefinitelyFs="true" isUsgaap="true" original="ssti-20250630.htm">ssti-20250630.htm</File>
    <File>ssti-20250630.xsd</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="561">http://fasb.org/us-gaap/2025</BaseTaxonomy>
    <BaseTaxonomy items="30">http://xbrl.sec.gov/dei/2025</BaseTaxonomy>
    <BaseTaxonomy items="4">http://xbrl.sec.gov/ecd/2025</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>false</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>66
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "ssti-20250630.htm": {
   "nsprefix": "ssti",
   "nsuri": "http://www.soundthinking.com/20250630",
   "dts": {
    "inline": {
     "local": [
      "ssti-20250630.htm"
     ]
    },
    "schema": {
     "local": [
      "ssti-20250630.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/2023/calculation-1.1.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2024-01-31/types.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-roles-2025.xsd",
      "https://xbrl.fasb.org/srt/2025/elts/srt-types-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-gaap-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-roles-2025.xsd",
      "https://xbrl.fasb.org/us-gaap/2025/elts/us-types-2025.xsd",
      "https://xbrl.sec.gov/country/2025/country-2025.xsd",
      "https://xbrl.sec.gov/dei/2025/dei-2025.xsd",
      "https://xbrl.sec.gov/ecd/2025/ecd-2025.xsd",
      "https://xbrl.sec.gov/ecd/2025/ecd-sub-2025.xsd",
      "https://xbrl.sec.gov/stpr/2025/stpr-2025.xsd"
     ]
    }
   },
   "keyStandard": 211,
   "keyCustom": 31,
   "axisStandard": 22,
   "axisCustom": 0,
   "memberStandard": 26,
   "memberCustom": 22,
   "hidden": {
    "total": 18,
    "http://xbrl.sec.gov/ecd/2025": 4,
    "http://fasb.org/us-gaap/2025": 10,
    "http://xbrl.sec.gov/dei/2025": 4
   },
   "contextCount": 173,
   "entityCount": 1,
   "segmentCount": 48,
   "elementCount": 628,
   "unitCount": 11,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2025": 561,
    "http://xbrl.sec.gov/dei/2025": 30,
    "http://xbrl.sec.gov/ecd/2025": 4
   },
   "report": {
    "R1": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation",
     "longName": "75000 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited",
     "longName": "75010 - Statement - Condensed Consolidated Balance Sheets (Unaudited)",
     "shortName": "Condensed Consolidated Balance Sheets (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "2",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:AssetsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "unique": true
     }
    },
    "R3": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical",
     "longName": "75020 - Statement - Condensed Consolidated Balance Sheets (Parenthetical)",
     "shortName": "Condensed Consolidated Balance Sheets (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "unitRef": "U_USDollarShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:CommonStockParOrStatedValuePerShare",
      "unitRef": "U_USDollarShare",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R4": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited",
     "longName": "75030 - Statement - Condensed Consolidated Statements of Operations (Unaudited)",
     "shortName": "Condensed Consolidated Statements of Operations (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R5": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited",
     "longName": "75040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited)",
     "shortName": "Condensed Consolidated Statements of Comprehensive Loss (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:ComprehensiveIncomeNetOfTax",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "unique": true
     }
    },
    "R6": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited",
     "longName": "75050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Unaudited)",
     "shortName": "Condensed Consolidated Statements of Stockholders' Equity (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "C_762ff647-a9f4-4b74-aa5c-acc10546ba06",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_f9db51c5-d33a-41ea-9880-5f986f6fa757",
      "name": "ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "unique": true
     }
    },
    "R7": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited",
     "longName": "75060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)",
     "shortName": "Condensed Consolidated Statements of Cash Flows (Unaudited)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ProfitLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure",
     "longName": "995410 - Disclosure - Pay vs Performance Disclosure",
     "shortName": "Pay vs Performance Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "8",
     "firstAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R9": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
     "longName": "995445 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "9",
     "firstAnchor": null,
     "uniqueAnchor": null
    },
    "R10": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusiness",
     "longName": "995455 - Disclosure - Organization and Description of Business",
     "shortName": "Organization and Description of Business",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "10",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R11": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPolicies",
     "longName": "995465 - Disclosure - Summary of Significant Accounting Policies",
     "shortName": "Summary of Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosures",
     "longName": "995475 - Disclosure - Revenue Related Disclosures",
     "shortName": "Revenue Related Disclosures",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurements",
     "longName": "995495 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNet1",
     "longName": "995515 - Disclosure - Intangible Assets, Net",
     "shortName": "Intangible Assets, Net",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts",
     "longName": "995525 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts",
     "shortName": "Details of Certain Condensed Consolidated Balance Sheet Accounts",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactions",
     "longName": "995535 - Disclosure - Related Party Transactions",
     "shortName": "Related Party Transactions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuring",
     "longName": "995545 - Disclosure - Restructuring",
     "shortName": "Restructuring",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgram",
     "longName": "995555 - Disclosure - Stock Repurchase Program",
     "shortName": "Stock Repurchase Program",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShare",
     "longName": "995565 - Disclosure - Net Income (Loss) per Share",
     "shortName": "Net Income (Loss) per Share",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlans",
     "longName": "995575 - Disclosure - Equity Incentive Plans",
     "shortName": "Equity Incentive Plans",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangements1",
     "longName": "995585 - Disclosure - Financing Arrangements",
     "shortName": "Financing Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies",
     "longName": "995595 - Disclosure - Commitments and Contingencies",
     "shortName": "Commitments and Contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies",
     "longName": "995615 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "23",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresTables",
     "longName": "995625 - Disclosure - Revenue Related Disclosures (Tables)",
     "shortName": "Revenue Related Disclosures (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "24",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetTables",
     "longName": "995665 - Disclosure - Intangible Assets, Net (Tables)",
     "shortName": "Intangible Assets, Net (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "25",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables",
     "longName": "995675 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts (Tables)",
     "shortName": "Details of Certain Condensed Consolidated Balance Sheet Accounts (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "26",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "ssti:ScheduleOfAccountsReceivableAndContractAssetTableTextblock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "ssti:ScheduleOfAccountsReceivableAndContractAssetTableTextblock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables",
     "longName": "995685 - Disclosure - Net Income (Loss) per Share (Tables)",
     "shortName": "Net Income (Loss) per Share (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "27",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansTables",
     "longName": "995695 - Disclosure - Equity Incentive Plans (Tables)",
     "shortName": "Equity Incentive Plans (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "28",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails",
     "longName": "995705 - Disclosure - Organization and Description of Business - Additional Information (Details)",
     "shortName": "Organization and Description of Business - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "29",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "ssti:NumberOfCustomers",
      "unitRef": "U_Customers",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "ssti:NumberOfAgencies",
      "unitRef": "U_Agencies",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "unique": true
     }
    },
    "R30": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
     "longName": "995715 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details)",
     "shortName": "Summary of Significant Accounting Policies - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "30",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "ssti:NumberOfCustomers",
      "unitRef": "U_Customers",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7dd5e880-15ee-439c-a081-48807c99f4d9",
      "name": "ssti:NumberOfCustomers",
      "unitRef": "U_Customers",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:ConcentrationRiskCreditRisk",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "unique": true
     }
    },
    "R31": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails",
     "longName": "995725 - Disclosure - Revenue Related Disclosures - Schedule of Changes in Deferred Revenue (Details)",
     "shortName": "Revenue Related Disclosures - Schedule of Changes in Deferred Revenue (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "31",
     "firstAnchor": {
      "contextRef": "C_81457c79-6544-4a8f-bbb2-9140fa31c5cd",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_81457c79-6544-4a8f-bbb2-9140fa31c5cd",
      "name": "us-gaap:ContractWithCustomerLiability",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails",
     "longName": "995735 - Disclosure - Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues (Details)",
     "shortName": "Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "32",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_7a929952-acd3-4997-96c2-997008fd538d",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "unique": true
     }
    },
    "R33": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details",
     "longName": "995745 - Disclosure - Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues 1 (Details)",
     "shortName": "Revenue Related Disclosures - Schedule of Remaining Performance Obligations for Contractually Committed Revenues 1 (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "33",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
       "div",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R34": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails",
     "longName": "995755 - Disclosure - Revenue Related Disclosures - Additional Information (Details)",
     "shortName": "Revenue Related Disclosures - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "34",
     "firstAnchor": {
      "contextRef": "C_4d2f56af-f39c-42e6-b0c1-a3f8fdfe2033",
      "name": "us-gaap:Revenues",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_4d2f56af-f39c-42e6-b0c1-a3f8fdfe2033",
      "name": "us-gaap:Revenues",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
     "longName": "995775 - Disclosure - Acquisitions - Summary of Assignment of Fair Value to Identified Assets and Liabilities (Details)",
     "shortName": "Acquisitions - Summary of Assignment of Fair Value to Identified Assets and Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "35",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:Goodwill",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R36": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails",
     "longName": "995785 - Disclosure - Fair Value Measurements - Additional Information (Details)",
     "shortName": "Fair Value Measurements - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "36",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:FairValueDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails",
     "longName": "995805 - Disclosure - Goodwill - Schedule of Changes in Goodwill (Details)",
     "shortName": "Goodwill - Schedule of Changes in Goodwill (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "37",
     "firstAnchor": {
      "contextRef": "C_81457c79-6544-4a8f-bbb2-9140fa31c5cd",
      "name": "us-gaap:Goodwill",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R38": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails",
     "longName": "995815 - Disclosure - Intangible Assets, Net - Schedule of Intangible Assets Net (Details)",
     "shortName": "Intangible Assets, Net - Schedule of Intangible Assets Net (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "38",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "div",
       "us-gaap:IntangibleAssetsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetAdditionalInformationDetails",
     "longName": "995825 - Disclosure - Intangible Assets, Net - Additional Information (Details)",
     "shortName": "Intangible Assets, Net - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "39",
     "firstAnchor": {
      "contextRef": "C_9c862cea-f98d-4386-bc50-979ceb737fa5",
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-5",
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R40": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails",
     "longName": "995835 - Disclosure - Intangible Assets, Net - Schedule of Future Intangible Asset Amortization (Details)",
     "shortName": "Intangible Assets, Net - Schedule of Future Intangible Asset Amortization (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "40",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails",
     "longName": "995845 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accounts Receivable and Contract Assets, Net (Details)",
     "shortName": "Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accounts Receivable and Contract Assets, Net (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "41",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ssti:ScheduleOfAccountsReceivableAndContractAssetTableTextblock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "ssti:ScheduleOfAccountsReceivableAndContractAssetTableTextblock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails",
     "longName": "995855 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Prepaid Expenses and Other Current Assets (Details)",
     "shortName": "Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Prepaid Expenses and Other Current Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "42",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:DeferredCostsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:DeferredCostsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails",
     "longName": "995865 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Other Long-term Assets (Details)",
     "shortName": "Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Other Long-term Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "43",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:DeferredCosts",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:DeferredCosts",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock",
       "div",
       "us-gaap:SupplementalBalanceSheetDisclosuresTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails",
     "longName": "995875 - Disclosure - Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accrued Expenses and Other Current Liabilities (Details)",
     "shortName": "Details of Certain Condensed Consolidated Balance Sheet Accounts - Schedule of Accrued Expenses and Other Current Liabilities (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "44",
     "firstAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:AccruedEmployeeBenefitsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_54bd9088-8c94-49db-a6cf-8aca17304d6c",
      "name": "us-gaap:AccruedEmployeeBenefitsCurrent",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails",
     "longName": "995885 - Disclosure - Related Party Transactions - Additional Information (Details)",
     "shortName": "Related Party Transactions - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "45",
     "firstAnchor": {
      "contextRef": "C_42592731-dd58-4d1e-a772-4aad8e45dd8a",
      "name": "us-gaap:Revenues",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_42592731-dd58-4d1e-a772-4aad8e45dd8a",
      "name": "us-gaap:Revenues",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "0",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RelatedPartyTransactionsDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails",
     "longName": "995895 - Disclosure - Restructuring - Additional Information (Details)",
     "shortName": "Restructuring - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "46",
     "firstAnchor": {
      "contextRef": "C_9c862cea-f98d-4386-bc50-979ceb737fa5",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_9c862cea-f98d-4386-bc50-979ceb737fa5",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent",
      "unitRef": "U_pure",
      "xsiNil": "false",
      "lang": null,
      "decimals": "2",
      "ancestors": [
       "span",
       "p",
       "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails",
     "longName": "995905 - Disclosure - Stock Repurchase Program - Additional Information (Details)",
     "shortName": "Stock Repurchase Program - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "47",
     "firstAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:StockRepurchasedDuringPeriodValue",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_d941df6c-f81f-4882-a6e7-ac57265797f8",
      "name": "us-gaap:StockRepurchasedDuringPeriodShares",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "unique": true
     }
    },
    "R48": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails",
     "longName": "995915 - Disclosure - Net Income (Loss) per Share - Summary of Computation of Basic and Diluted Net Income (Loss) per Share (Details)",
     "shortName": "Net Income (Loss) per Share - Summary of Computation of Basic and Diluted Net Income (Loss) per Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "48",
     "firstAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R49": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails",
     "longName": "995925 - Disclosure - Net Income (Loss) per Share - Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Income (Loss) per Share (Details)",
     "shortName": "Net Income (Loss) per Share - Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Income (Loss) per Share (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "49",
     "firstAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails",
     "longName": "995945 - Disclosure - Equity Incentive Plans - Schedule of Stock Option Activity (Details)",
     "shortName": "Equity Incentive Plans - Schedule of Stock Option Activity (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "50",
     "firstAnchor": {
      "contextRef": "C_81457c79-6544-4a8f-bbb2-9140fa31c5cd",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_81457c79-6544-4a8f-bbb2-9140fa31c5cd",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "div",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
     "longName": "995955 - Disclosure - Equity Incentive Plans - Additional Information (Details)",
     "shortName": "Equity Incentive Plans - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "51",
     "firstAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_e4245d7f-a244-4565-9348-5e0d7f06fa59",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
     "longName": "995965 - Disclosure - Equity Incentive Plans - Schedule of Unvested Restricted Stock Units Awards Activity - (Details)",
     "shortName": "Equity Incentive Plans - Schedule of Unvested Restricted Stock Units Awards Activity - (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "52",
     "firstAnchor": {
      "contextRef": "C_41e5a601-8395-4d04-877b-e251abf8096e",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_41e5a601-8395-4d04-877b-e251abf8096e",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "U_shares",
      "xsiNil": "false",
      "lang": null,
      "decimals": "INF",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true,
      "unique": true
     }
    },
    "R53": {
     "role": "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails",
     "longName": "995975 - Disclosure - Equity Incentive Plans - Schedule of Stock-Based Compensation Expense Recorded in Condensed Consolidated Statements of Operations (Details)",
     "shortName": "Equity Incentive Plans - Schedule of Stock-Based Compensation Expense Recorded in Condensed Consolidated Statements of Operations (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "53",
     "firstAnchor": {
      "contextRef": "C_55761fbb-0cac-4679-a6bc-21b2b31d8283",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "C_0dabec57-30b9-451f-902e-82daad6dee8b",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "U_USD",
      "xsiNil": "false",
      "lang": null,
      "decimals": "-3",
      "ancestors": [
       "span",
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "div",
       "ix:continuation",
       "div",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ssti-20250630.htm",
      "unique": true
     }
    }
   },
   "tag": {
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_AccountingPoliciesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "AccountingPoliciesLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounting policies.",
        "terseLabel": "Accounting Policies [Line Items]",
        "label": "Accounting Policies [Line Items]"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_AccountingPoliciesTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "AccountingPoliciesTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Table]",
        "documentation": "Accounting policies.",
        "terseLabel": "Accounting Policies [Table]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingStandardsUpdate201613Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountingStandardsUpdate201613Member",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ASU 2016-13",
        "label": "Accounting Standards Update 2016-13 [Member]",
        "documentation": "Accounting Standards Update 2016-13 Financial Instruments-Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments."
       }
      }
     },
     "auth_ref": [
      "r236"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Accounts Payable, Current",
        "totalLabel": "Accounts Payable, Current, Total",
        "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": [
      "r34",
      "r986"
     ]
    },
    "ssti_AccountsReceivableAndContractAssetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "AccountsReceivableAndContractAssetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable and contract assets, net",
        "label": "Accounts Receivable And Contract Asset Current",
        "documentation": "Accounts receivable and contract asset current.",
        "totalLabel": "Accounts receivable and contract assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Accounts Receivable and Contract Assets",
        "terseLabel": "Accounts Receivable",
        "label": "Accounts Receivable [Member]",
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold."
       }
      }
     },
     "auth_ref": [
      "r848",
      "r1189"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails": {
       "parentTag": "ssti_AccountsReceivableAndContractAssetCurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "totalLabel": "Accounts Receivable, after Allowance for Credit Loss, Current, Total",
        "terseLabel": "Accounts receivable",
        "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": [
      "r1198"
     ]
    },
    "us-gaap_AccruedEmployeeBenefitsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedEmployeeBenefitsCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Personnel-related accruals",
        "label": "Accrued Employee Benefits, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations, excluding pension and other postretirement benefits, incurred through that date and payable for perquisites provided to employees pertaining to services received from them. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "ssti_AccruedExpensesAndOtherCurrentLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "AccruedExpensesAndOtherCurrentLiabilitiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Accrued Expenses And Other Current Liabilities [Abstract]",
        "documentation": "Accrued expenses and other current liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_AccruedExpensesAndOtherCurrentLiabilitiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "AccruedExpensesAndOtherCurrentLiabilitiesMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued Expenses and Other Current Liabilities",
        "label": "Accrued Expenses and Other Current Liabilities [Member]",
        "documentation": "Accrued expenses and other current liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedIncomeTaxesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State income tax payable",
        "label": "Accrued Income Taxes, Current",
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r81"
     ]
    },
    "us-gaap_AccruedLiabilitiesAndOtherLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedLiabilitiesAndOtherLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Accrued expenses and other current liabilities",
        "terseLabel": "Accrued expenses and other current liabilities",
        "label": "Accrued Liabilities and Other Liabilities",
        "documentation": "Amount of expenses incurred but not yet paid nor invoiced, and liabilities classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_AccruedLiabilitiesAndOtherLiabilitiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "AccruedLiabilitiesAndOtherLiabilitiesMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accrued liabilities and other liabilities.",
        "label": "Accrued Liabilities And Other Liabilities [Member]",
        "terseLabel": "Accrued Expenses and Other Current Liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccruedProfessionalFeesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccruedProfessionalFeesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Professional fees",
        "label": "Accrued Professional Fees, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for professional fees, such as for legal and accounting services received. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated other comprehensive loss",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "totalLabel": "Accumulated Other Comprehensive Income (Loss), Net of Tax, Total",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r16",
      "r51",
      "r125",
      "r717",
      "r747",
      "r751",
      "r1289"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "AOCI Attributable to Parent [Member]",
        "terseLabel": "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": [
      "r1",
      "r9",
      "r16",
      "r571",
      "r574",
      "r646",
      "r742",
      "r743",
      "r1125",
      "r1126",
      "r1127",
      "r1181",
      "r1182",
      "r1183",
      "r1185"
     ]
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted average amortization period of intangible assets",
        "label": "Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life",
        "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": [
      "r269",
      "r862"
     ]
    },
    "ssti_AcquiredSoftwareTechnologyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "AcquiredSoftwareTechnologyMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquired Software Technology",
        "label": "Acquired Software Technology [Member]",
        "documentation": "Acquired software technology."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Additional402vDisclosureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Additional 402(v) Disclosure [Text Block]",
        "terseLabel": "Additional 402(v) Disclosure"
       }
      }
     },
     "auth_ref": [
      "r1052"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapitalCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional paid-in capital",
        "label": "Additional Paid in Capital, Common Stock",
        "periodStartLabel": "Additional Paid in Capital, Common Stock, Beginning Balance",
        "periodEndLabel": "Additional Paid in Capital, Common Stock, Ending Balance",
        "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital."
       }
      }
     },
     "auth_ref": [
      "r46"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional Paid-in Capital",
        "label": "Additional Paid-in Capital [Member]",
        "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": [
      "r768",
      "r1181",
      "r1182",
      "r1183",
      "r1185",
      "r1290",
      "r1350"
     ]
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AdjToCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Compensation Amount",
        "terseLabel": "Adjustment to Compensation, Amount"
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AdjToCompAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Compensation [Axis]",
        "terseLabel": "Adjustment to Compensation:"
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AdjToNonPeoNeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]",
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote"
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AdjToPeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]",
        "terseLabel": "Adjustment To PEO Compensation, Footnote"
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update [Axis]",
        "documentation": "Information by amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r100",
      "r101",
      "r102",
      "r103",
      "r104",
      "r105",
      "r106",
      "r107",
      "r108",
      "r109",
      "r110",
      "r144",
      "r145",
      "r146",
      "r168",
      "r169",
      "r170",
      "r171",
      "r172",
      "r183",
      "r232",
      "r233",
      "r237",
      "r239",
      "r240",
      "r241",
      "r280",
      "r281",
      "r289",
      "r348",
      "r349",
      "r350",
      "r351",
      "r443",
      "r444",
      "r445",
      "r446",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r515",
      "r516",
      "r517",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r582",
      "r583",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r616",
      "r617",
      "r635",
      "r636",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r751"
     ]
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "totalLabel": "APIC, Share-based Payment Arrangement, Increase for Cost Recognition, Total",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r408"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity [Abstract]",
        "terseLabel": "Adjustments to reconcile net loss to net cash provided by (used in ) operating activities:"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]",
        "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r1098"
     ]
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Erroneous Compensation Amount",
        "terseLabel": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1024",
      "r1034",
      "r1044",
      "r1076"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AggtErrCompNotYetDeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]",
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined"
       }
      }
     },
     "auth_ref": [
      "r1027",
      "r1037",
      "r1047",
      "r1079"
     ]
    },
    "ecd_AggtPnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AggtPnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Pension Adjustments Service Cost [Member]",
        "terseLabel": "Aggregate Pension Adjustments Service Cost"
       }
      }
     },
     "auth_ref": [
      "r1099"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AllAdjToCompMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Adjustments to Compensation [Member]",
        "terseLabel": "All Adjustments to Compensation"
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AllExecutiveCategoriesMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Executive Categories [Member]",
        "terseLabel": "All Executive Categories"
       }
      }
     },
     "auth_ref": [
      "r1072"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AllIndividualsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Individuals [Member]",
        "terseLabel": "All Individuals"
       }
      }
     },
     "auth_ref": [
      "r1028",
      "r1038",
      "r1048",
      "r1072",
      "r1080",
      "r1084",
      "r1092"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AllTradingArrangementsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Trading Arrangements [Member]",
        "terseLabel": "All Trading Arrangements"
       }
      }
     },
     "auth_ref": [
      "r1090"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Compensation expense",
        "terseLabel": "Stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r438",
      "r447",
      "r448"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of intangible assets",
        "label": "Amortization of Intangible Assets",
        "totalLabel": "Amortization of Intangible Assets, Total",
        "verboseLabel": "Intangible amortization expense",
        "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."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r143",
      "r266",
      "r273",
      "r866",
      "r872",
      "r873",
      "r875",
      "r877"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "terseLabel": "Total",
        "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": [
      "r192"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r192"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "terseLabel": "Antidilutive Securities Excluded From Computation Of Earnings Per Share [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": [
      "r192"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails"
     ],
     "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": [
      "r192"
     ]
    },
    "us-gaap_AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetAcquisitionConsiderationTransferredEquityInterestIssuedAndIssuable",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value of common stock issued as consideration for asset acquisition",
        "label": "Asset Acquisition, Consideration Transferred, Equity Interest Issued and Issuable",
        "documentation": "Amount of acquirer's equity interest issued and issuable as part of consideration transferred in asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r1282",
      "r1283",
      "r1284"
     ]
    },
    "us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetAcquisitionConsiderationTransferredTransactionCost",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset acquisition related expenses",
        "label": "Asset Acquisition, Consideration Transferred, Transaction Cost",
        "documentation": "Amount of transaction cost incurred as part of consideration transferred in asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r969",
      "r1282",
      "r1283",
      "r1284"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "Assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r79",
      "r90",
      "r121",
      "r156",
      "r158",
      "r159",
      "r196",
      "r210",
      "r221",
      "r224",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r544",
      "r548",
      "r622",
      "r705",
      "r706",
      "r712",
      "r796",
      "r889",
      "r890",
      "r905",
      "r986",
      "r1002",
      "r1003",
      "r1015",
      "r1237",
      "r1238",
      "r1306"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r115",
      "r127",
      "r156",
      "r158",
      "r159",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r544",
      "r548",
      "r622",
      "r986",
      "r1237",
      "r1238",
      "r1306"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current assets",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Exercise Price",
        "terseLabel": "Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r1087"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardGrantDateFairValue",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Grant Date Fair Value",
        "terseLabel": "Fair Value as of Grant Date"
       }
      }
     },
     "auth_ref": [
      "r1088"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]",
        "terseLabel": "Award Timing Disclosures"
       }
      }
     },
     "auth_ref": [
      "r1083"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgHowMnpiCnsdrdTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing, How MNPI Considered [Text Block]",
        "terseLabel": "Award Timing, How MNPI Considered"
       }
      }
     },
     "auth_ref": [
      "r1083"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Method [Text Block]",
        "terseLabel": "Award Timing Method"
       }
      }
     },
     "auth_ref": [
      "r1083"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgMnpiCnsdrdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing MNPI Considered [Flag]",
        "terseLabel": "Award Timing MNPI Considered"
       }
      }
     },
     "auth_ref": [
      "r1083"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgMnpiDiscTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing MNPI Disclosure [Text Block]",
        "terseLabel": "Award Timing MNPI Disclosure"
       }
      }
     },
     "auth_ref": [
      "r1083"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardTmgPredtrmndFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Predetermined [Flag]",
        "terseLabel": "Award Timing Predetermined"
       }
      }
     },
     "auth_ref": [
      "r1083"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Type [Axis]",
        "terseLabel": "Award Type",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Underlying Securities Amount",
        "terseLabel": "Underlying Securities"
       }
      }
     },
     "auth_ref": [
      "r1086"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardsCloseToMnpiDiscIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r1085"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardsCloseToMnpiDiscTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures [Table]",
        "terseLabel": "Awards Close in Time to MNPI Disclosures"
       }
      }
     },
     "auth_ref": [
      "r1084"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "AwardsCloseToMnpiDiscTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]",
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table"
       }
      }
     },
     "auth_ref": [
      "r1084"
     ]
    },
    "country_BS": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2025",
     "localname": "BS",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bahamas",
        "label": "BAHAMAS"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BalanceSheetLocationAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position Location, Balance [Axis]",
        "documentation": "Information by location in statement of financial position where disaggregated cumulative balance is reported."
       }
      }
     },
     "auth_ref": [
      "r288",
      "r550",
      "r552",
      "r553",
      "r554",
      "r555",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r621",
      "r974",
      "r975",
      "r1108",
      "r1317"
     ]
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BalanceSheetLocationDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position Location, Balance [Domain]",
        "documentation": "Location in statement of financial position where disaggregated cumulative balance is reported."
       }
      }
     },
     "auth_ref": [
      "r288",
      "r550",
      "r552",
      "r553",
      "r554",
      "r555",
      "r558",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r564",
      "r621",
      "r974",
      "r975",
      "r1108",
      "r1317"
     ]
    },
    "us-gaap_BalanceSheetRelatedDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BalanceSheetRelatedDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Balance Sheet Related Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basis of Presentation",
        "label": "Basis of Accounting, Policy [Policy Text Block]",
        "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": [
      "r1172"
     ]
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition, Acquiree",
        "label": "Business Combination [Domain]",
        "documentation": "Business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r260",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r509",
      "r510",
      "r511",
      "r512",
      "r513",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r534",
      "r535",
      "r536",
      "r753",
      "r922",
      "r923",
      "r1272",
      "r1275",
      "r1277"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition",
        "label": "Business Combination [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r260",
      "r267",
      "r268",
      "r269",
      "r270",
      "r271",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r485",
      "r486",
      "r487",
      "r488",
      "r489",
      "r490",
      "r491",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r509",
      "r510",
      "r511",
      "r512",
      "r513",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r531",
      "r532",
      "r534",
      "r535",
      "r536",
      "r753",
      "r922",
      "r923",
      "r1272",
      "r1275",
      "r1277"
     ]
    },
    "us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionCostOfAcquiredEntityTransactionCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Transaction costs",
        "label": "Business Combination, Transaction Cost, Excluding Separately Recognized Transaction",
        "documentation": "Amount of transaction cost incurred to effect business combination. Excludes separately recognized transaction and indirect cost."
       }
      }
     },
     "auth_ref": [
      "r1274"
     ]
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination [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": [
      "r260",
      "r473",
      "r474",
      "r475",
      "r476",
      "r482",
      "r483",
      "r484",
      "r485",
      "r491",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r509",
      "r510",
      "r511",
      "r512",
      "r513",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r530",
      "r531",
      "r532",
      "r536",
      "r927",
      "r937",
      "r1272",
      "r1275",
      "r1277"
     ]
    },
    "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionPercentageOfVotingInterestsAcquired",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Voting Equity Interest Acquired, Percentage",
        "terseLabel": "Membership interests, acquired",
        "documentation": "Percentage of voting equity interest acquired in business combination."
       }
      }
     },
     "auth_ref": [
      "r475",
      "r927",
      "r930"
     ]
    },
    "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionsProFormaNetIncomeLoss",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Pro Forma Information, Pro Forma Income (Loss), after Tax",
        "terseLabel": "Proforma combined loss",
        "documentation": "Amount, after tax, of pro forma income (loss) of combined entity as if acquisition date of business combination occurred as of beginning of period."
       }
      }
     },
     "auth_ref": [
      "r488",
      "r489",
      "r491",
      "r927",
      "r938",
      "r939"
     ]
    },
    "us-gaap_BusinessAcquisitionsProFormaRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessAcquisitionsProFormaRevenue",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proforma revenue",
        "label": "Business Combination, Pro Forma Information, Pro Forma Revenue",
        "documentation": "Amount of pro forma revenue of combined entity as if acquisition date of business combination occurred as of beginning of period."
       }
      }
     },
     "auth_ref": [
      "r488",
      "r489",
      "r491",
      "r927",
      "r938"
     ]
    },
    "ssti_BusinessAndNatureOfOperationsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessAndNatureOfOperationsLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business And Nature Of Operations [Line Items]",
        "label": "Business And Nature Of Operations [Line Items]",
        "documentation": "Business and nature of operations."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_BusinessAndNatureOfOperationsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessAndNatureOfOperationsTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business And Nature Of Operations [Table]",
        "label": "Business And Nature Of Operations [Table]",
        "documentation": "Business and nature of operations."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationAcquisitionRelatedCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationAcquisitionRelatedCosts",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Acquisition-Related Cost, Expense",
        "terseLabel": "Acquisition-related expenses",
        "documentation": "Amount of expense for acquisition-related cost incurred to effect business combination. Includes, but is not limited to, finder's fee; advisory, legal, accounting, valuation, and other professional and consulting fees; and general administrative cost, including cost of maintaining internal acquisition department."
       }
      }
     },
     "auth_ref": [
      "r1270",
      "r1274"
     ]
    },
    "ssti_BusinessCombinationConsiderationPaidInKind": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessCombinationConsiderationPaidInKind",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business combination consideration paid in kind",
        "label": "Business Combination Consideration Paid In Kind",
        "documentation": "Business combination consideration paid in kind."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationConsiderationTransferred1",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Consideration Transferred",
        "totalLabel": "Business Combination, Consideration Transferred, Total",
        "terseLabel": "Business acquisition estimated purchase consideration/purchase consideration",
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer."
       }
      }
     },
     "auth_ref": [
      "r520",
      "r532",
      "r927",
      "r932"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase consideration indemnification escrow stock",
        "label": "Business Combination, Consideration Transferred, Equity Interest",
        "verboseLabel": "Business acquisition purchase consideration, stock issued",
        "documentation": "Amount of equity interests of the acquirer, including instruments or interests issued or issuable in consideration for the business combination."
       }
      }
     },
     "auth_ref": [
      "r927",
      "r932",
      "r933",
      "r967",
      "r968"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Contingent consideration (Note 4 - Acquistions)",
        "terseLabel": "Preliminary fair value of the contingent consideration",
        "label": "Business Combination, Consideration Transferred, Liabilities Incurred",
        "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination."
       }
      }
     },
     "auth_ref": [
      "r523",
      "r927",
      "r932",
      "r968"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Change in fair value of contingent consideration",
        "label": "Business Combination, Contingent Consideration, Change in Contingent Consideration, Liability, Increase (Decrease)",
        "terseLabel": "Contingent consideration - Forensic Logic (Note 4 - Business Acquisitions)",
        "documentation": "Amount of increase (decrease) in value of liability in contingent consideration arrangement in business combination, including, but not limited to, difference arising upon settlement."
       }
      }
     },
     "auth_ref": [
      "r534",
      "r1171"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnout will be payable based on estimated revenues generated",
        "label": "Business Combination, Contingent Consideration, Liability",
        "totalLabel": "Business Combination, Contingent Consideration, Liability, Total",
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination."
       }
      }
     },
     "auth_ref": [
      "r525",
      "r532",
      "r596",
      "r597",
      "r598",
      "r927",
      "r934"
     ]
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationContingentConsiderationLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Contingent Consideration, Liability, Current",
        "terseLabel": "Contingent consideration liability",
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r1279",
      "r1280"
     ]
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitions1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisitions",
        "label": "Business Combination [Text Block]",
        "documentation": "The entire disclosure for business combination."
       }
      }
     },
     "auth_ref": [
      "r472",
      "r473",
      "r477",
      "r486",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r497",
      "r498",
      "r504",
      "r507",
      "r508",
      "r514",
      "r518",
      "r519",
      "r527",
      "r531",
      "r532",
      "r533",
      "r535",
      "r537",
      "r927",
      "r928",
      "r929",
      "r930",
      "r934",
      "r935",
      "r936"
     ]
    },
    "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedExpensesAndOtherCurrentLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed Accrued Expenses and Other Current Liabilities",
        "documentation": "Business combination recognized identifiable assets acquired and liabilities assumed accrued expenses and other current liabilities",
        "negatedLabel": "Accrued expenses and other current liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Asset Acquired, Cash and Cash Equivalent",
        "terseLabel": "Cash and cash equivalents",
        "documentation": "Amount of cash and cash equivalent acquired in business combination and recognized at acquisition date."
       }
      }
     },
     "auth_ref": [
      "r1276",
      "r1278"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Asset Acquired, Other Asset, Current",
        "terseLabel": "Other assets",
        "documentation": "Amount of asset acquired in business combination and recognized at acquisition date, classified as other and current."
       }
      }
     },
     "auth_ref": [
      "r1276",
      "r1278"
     ]
    },
    "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssets",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business combination recognized identifiable assets acquired and liabilities assumed current assets receivables and contract assets.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Current Assets Receivables And Contract Assets",
        "terseLabel": "Accounts receivable and contract assets"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivablesAndContractAssetsNet",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed Current Assets Receivables and Contract Assets Net",
        "documentation": "Business combination recognized identifiable assets acquired and liabilities assumed current assets receivables and contract assets net.",
        "terseLabel": "Accounts receivable and contract assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesDeferredRevenue",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination, Recognized Liability Assumed, Deferred Revenue, Current",
        "negatedLabel": "Deferred revenue",
        "documentation": "Amount of deferred revenue assumed in business combination and recognized at acquisition date, classified as current."
       }
      }
     },
     "auth_ref": [
      "r1276",
      "r1278"
     ]
    },
    "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedEscrowClaim",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business combination recognized identifiable assets acquired and liabilities assumed escrow claim.",
        "label": "Business Combination Recognized Identifiable Assets Acquired And Liabilities Assumed Escrow Claim",
        "terseLabel": "Escrow claim"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Business acquisition, intangible assets",
        "label": "Business Combination, Recognized Asset Acquired, Identifiable Intangible Asset, Finite-Lived",
        "terseLabel": "Identifiable technology and intangible assets",
        "documentation": "Amount of identifiable finite-lived intangible asset acquired in business combination and recognized at acquisition date."
       }
      }
     },
     "auth_ref": [
      "r1276",
      "r1278"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net assets acquired",
        "label": "Business Combination, Recognized Asset Acquired to Liability Assumed, Excess (Less)",
        "totalLabel": "Net assets acquired",
        "documentation": "Amount of asset acquired in excess of (less than) liability assumed in business combination and recognized at acquisition date. Excludes goodwill."
       }
      }
     },
     "auth_ref": [
      "r927",
      "r932",
      "r1276",
      "r1278"
     ]
    },
    "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business combination recognized identifiable assets acquired and liabilities assumed operating lease liabilities.",
        "label": "Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed Operating Lease Liabilities",
        "negatedLabel": "Operating lease liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease right-of-use assets",
        "label": "Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed Operating Lease Right of Use Asset",
        "documentation": "Business combination recognized identifiable assets acquired and liabilities assumed operating lease right of use asset"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment, Total",
        "label": "Business Combination, Recognized Asset Acquired, Property, Plant, and Equipment",
        "terseLabel": "Property and equipment, net",
        "documentation": "Amount of property, plant, and equipment acquired in business combination and recognized at acquisition date."
       }
      }
     },
     "auth_ref": [
      "r927",
      "r932",
      "r1276",
      "r1278"
     ]
    },
    "ssti_BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredEscrowClaimAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business combination recognized identifiable assets acquired escrow claim and liabilities assumed net.",
        "label": "Business Combination Recognized Identifiable Assets Acquired Escrow Claim And Liabilities Assumed Net",
        "totalLabel": "Total estimated consideration"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "BusinessCombinationsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalent",
        "totalLabel": "Cash and Cash Equivalents, at Carrying Value, Total",
        "periodStartLabel": "Cash and Cash Equivalents, at Carrying Value, Beginning Balance",
        "periodEndLabel": "Cash and Cash Equivalents, at Carrying Value, Ending Balance",
        "documentation": "Amount of cash and cash equivalent. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r117",
      "r867"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Continuing Operation",
        "totalLabel": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Total",
        "periodStartLabel": "Cash and cash equivalents at beginning of year",
        "periodEndLabel": "Cash and cash equivalents at end of period",
        "documentation": "Amount of cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; attributable to continuing operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r20",
      "r64",
      "r153"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Excluding Exchange Rate Effect, Including Discontinued Operation",
        "totalLabel": "Change in cash and cash equivalents",
        "documentation": "Amount, excluding effect from change in exchange rate, of increase (decrease) in cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r64"
     ]
    },
    "us-gaap_CashFDICInsuredAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CashFDICInsuredAmount",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash deposits insured",
        "label": "Cash, FDIC Insured Amount",
        "documentation": "The amount of cash deposited in financial institutions as of the balance sheet date that is insured by the Federal Deposit Insurance Corporation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ChangeInAccountingPrincipleAccountingStandardsUpdateAdopted",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Accounting Principle, Accounting Standards Update, Adopted [true false]",
        "terseLabel": "Change in accounting principle, ASU, adopted",
        "documentation": "Indicates (true false) whether accounting standards update was adopted."
       }
      }
     },
     "auth_ref": [
      "r105",
      "r106",
      "r110",
      "r144",
      "r167",
      "r232",
      "r280",
      "r289",
      "r348",
      "r443",
      "r459",
      "r463",
      "r464",
      "r515",
      "r516",
      "r538",
      "r567",
      "r582",
      "r583",
      "r616",
      "r617",
      "r635",
      "r641",
      "r642",
      "r740",
      "r741"
     ]
    },
    "us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ChangeInAccountingPrincipleAccountingStandardsUpdateAdoptionDate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Accounting Principle, Accounting Standards Update, Adoption Date",
        "terseLabel": "Change in accounting principle, ASU, adoption date",
        "documentation": "Date accounting standards update was adopted, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r105",
      "r106",
      "r107",
      "r144",
      "r232",
      "r280",
      "r289",
      "r348",
      "r349",
      "r443",
      "r444",
      "r459",
      "r463",
      "r464",
      "r515",
      "r516",
      "r517",
      "r538",
      "r539",
      "r567",
      "r568",
      "r582",
      "r583",
      "r584",
      "r587",
      "r616",
      "r617",
      "r635",
      "r641",
      "r642",
      "r740",
      "r741",
      "r1109",
      "r1184"
     ]
    },
    "us-gaap_ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ChangeInAccountingPrincipleAccountingStandardsUpdateImmaterialEffect",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Accounting Principle, Accounting Standards Update, Immaterial Effect [true false]",
        "terseLabel": "Change in accounting principle, ASU, material effect",
        "documentation": "Indicates (true false) whether effect from applying amendment to accounting standards is immaterial."
       }
      }
     },
     "auth_ref": [
      "r110",
      "r168",
      "r182",
      "r238"
     ]
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ChangedPeerGroupFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Changed Peer Group, Footnote [Text Block]",
        "terseLabel": "Changed Peer Group, Footnote"
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]",
        "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year"
       }
      }
     },
     "auth_ref": [
      "r1060"
     ]
    },
    "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]",
        "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested"
       }
      }
     },
     "auth_ref": [
      "r1058"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfStockLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ClassOfStockLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Class of Stock [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": [
      "r122",
      "r123",
      "r124",
      "r198",
      "r355",
      "r362",
      "r363",
      "r364",
      "r366",
      "r369",
      "r374",
      "r376",
      "r566",
      "r759",
      "r760",
      "r761",
      "r762",
      "r906",
      "r1103",
      "r1173",
      "r1175"
     ]
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Selected Measure Amount",
        "terseLabel": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r1064"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CoSelectedMeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Company Selected Measure Name",
        "terseLabel": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r1064"
     ]
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies",
        "terseLabel": "Commitments and contingencies (Note 11)",
        "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": [
      "r42",
      "r83",
      "r714",
      "r783"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureCommitmentsAndContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r68",
      "r302",
      "r303",
      "r849",
      "r1224",
      "r1229"
     ]
    },
    "ssti_CommonStockFairMarketValuePercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "CommonStockFairMarketValuePercentage",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock Fair Market Value Percentage",
        "documentation": "Common stock fair market value percentage.",
        "terseLabel": "Common stock fair market value percentage"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock",
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r1005",
      "r1006",
      "r1007",
      "r1009",
      "r1010",
      "r1011",
      "r1012",
      "r1181",
      "r1182",
      "r1185",
      "r1290",
      "r1347",
      "r1350"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, par value",
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r45"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Common stock, shares authorized",
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r45",
      "r784"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Common Stock, Shares, Issued, Total",
        "terseLabel": "Common stock, shares issued",
        "label": "Common Stock, Shares, Issued",
        "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": [
      "r45"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Common Stock, Shares, Outstanding, Ending Balance",
        "terseLabel": "Common stock, shares outstanding",
        "label": "Common Stock, Shares, Outstanding",
        "periodStartLabel": "Common Stock, Shares, Outstanding, Beginning Balance",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r45",
      "r784",
      "r802",
      "r1350",
      "r1351"
     ]
    },
    "us-gaap_CommonStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CommonStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Common Stock, Value, Issued",
        "totalLabel": "Common Stock, Value, Issued, Total",
        "periodStartLabel": "Common Stock, Value, Issued, Beginning Balance",
        "periodEndLabel": "Common Stock, Value, Issued, Ending Balance",
        "terseLabel": "Common stock: $0.005 par value; 500,000,000 shares authorized; 12,788,631 and 12,634,485 shares issued and outstanding as of June 30, 2025 and December 31, 2024, 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": [
      "r45",
      "r353",
      "r359",
      "r716",
      "r986"
     ]
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure"
       }
      }
     },
     "auth_ref": [
      "r1069"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CompActuallyPaidVsNetIncomeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Net Income [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Net Income"
       }
      }
     },
     "auth_ref": [
      "r1068"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CompActuallyPaidVsOtherMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Other Measure"
       }
      }
     },
     "auth_ref": [
      "r1070"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]",
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return"
       }
      }
     },
     "auth_ref": [
      "r1067"
     ]
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ComprehensiveIncomeNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Comprehensive income (loss)",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "totalLabel": "Comprehensive 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": [
      "r17",
      "r130",
      "r132",
      "r137",
      "r703",
      "r725",
      "r726"
     ]
    },
    "us-gaap_ComputerSoftwareIntangibleAssetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ComputerSoftwareIntangibleAssetMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Computer Software, Intangible Asset [Member]",
        "terseLabel": "Software Technology",
        "documentation": "Collection of computer programs and related data that provide instructions to a computer, for example, but not limited to, application program, control module or operating system, that perform one or more particular functions or tasks."
       }
      }
     },
     "auth_ref": [
      "r862",
      "r963",
      "r1212",
      "r1213",
      "r1214",
      "r1215",
      "r1217",
      "r1219",
      "r1222",
      "r1223"
     ]
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark",
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r200",
      "r231",
      "r754",
      "r755",
      "r848",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark",
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r200",
      "r231",
      "r754",
      "r755",
      "r848",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type",
        "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": [
      "r200",
      "r231",
      "r754",
      "r755",
      "r848",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192"
     ]
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskCreditRisk",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentrations of Risk",
        "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for credit risk. Includes, but is not limited to, policy for entering into master netting arrangement or similar agreement to mitigate credit risk of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r619",
      "r620"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration risk percentage",
        "label": "Concentration Risk, Percentage",
        "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": [
      "r200",
      "r231",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type",
        "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": [
      "r200",
      "r231",
      "r754",
      "r755",
      "r848",
      "r1188",
      "r1189",
      "r1190",
      "r1191",
      "r1192"
     ]
    },
    "us-gaap_ContingentConsiderationClassifiedAsEquityFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContingentConsiderationClassifiedAsEquityFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contingent Consideration Classified as Equity, Fair Value Disclosure",
        "terseLabel": "Estimated fair value of contingent consideration",
        "verboseLabel": "Estimated fair value of contingent consideration liability",
        "documentation": "Fair value of contingent consideration in a business combination that is classified in shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r1291",
      "r1292",
      "r1298"
     ]
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "terseLabel": "Schedule of Changes in Deferred Revenue",
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability."
       }
      }
     },
     "auth_ref": [
      "r1241"
     ]
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerAssetNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails": {
       "parentTag": "ssti_AccountsReceivableAndContractAssetCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current",
        "totalLabel": "Contract with Customer, Asset, after Allowance for Credit Loss, Current, Total",
        "terseLabel": "Contract assets",
        "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": [
      "r378",
      "r380",
      "r382",
      "r393"
     ]
    },
    "us-gaap_ContractWithCustomerDurationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerDurationAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with Customer, Duration",
        "label": "Contract with Customer, Duration [Axis]",
        "documentation": "Information by duration of contract with customer. Includes, but is not limited to, short-term and long-term contracts."
       }
      }
     },
     "auth_ref": [
      "r909",
      "r914"
     ]
    },
    "us-gaap_ContractWithCustomerDurationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerDurationDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with Customer, Duration",
        "label": "Contract with Customer, Duration [Domain]",
        "documentation": "Duration of contract with customer. Includes, but is not limited to, short-term and long-term contracts."
       }
      }
     },
     "auth_ref": [
      "r909",
      "r914"
     ]
    },
    "us-gaap_ContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiability",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "label": "Contract with Customer, Liability",
        "totalLabel": "Contract with Customer, Liability, Total",
        "terseLabel": "Balance at the beginning of the year",
        "verboseLabel": "Balance at the end of the year",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r378",
      "r379",
      "r382",
      "r393"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Liability, Cumulative Catch-up Adjustment to Revenue, Change in Measure of Progress",
        "terseLabel": "New billings",
        "documentation": "Amount of increase (decrease) in revenue recognized for cumulative catch-up adjustment from change in measure of progress which (increases) decreases obligation to transfer good or service to customer for which consideration from customer has been received or is due."
       }
      }
     },
     "auth_ref": [
      "r908"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue, short-term",
        "label": "Contract with Customer, Liability, Current",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r378",
      "r379",
      "r382",
      "r393"
     ]
    },
    "ssti_ContractWithCustomerLiabilityForeignCurrencyImpact": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "ContractWithCustomerLiabilityForeignCurrencyImpact",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract With Customer Liability Foreign Currency Impact",
        "label": "Contract With Customer Liability Foreign Currency Impact",
        "terseLabel": "Foreign currency impact",
        "negatedLabel": "Foreign currency impact"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenues acquired (Note 4 - Acquisitions)",
        "label": "Contract with Customer, Liability, Increase (Decrease) for Contract Acquired in Business Combination",
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination."
       }
      }
     },
     "auth_ref": [
      "r907"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue, long-term",
        "label": "Contract with Customer, Liability, Noncurrent",
        "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": [
      "r378",
      "r379",
      "r382",
      "r393"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Revenue recognized during the year",
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "terseLabel": "Revenue recognized during the year from balance at the beginning of the year",
        "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": [
      "r394"
     ]
    },
    "ssti_ContractWithCustomerLiabilityRevenueRecognizedAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "ContractWithCustomerLiabilityRevenueRecognizedAdjustments",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Contract with Customer, Liability, Revenue Recognized Adjustments",
        "documentation": "Contract with Customer, Liability, Revenue Recognized Adjustments",
        "terseLabel": "Adjustments"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_CostOfRevenue",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of revenues",
        "label": "Cost of Product and Service Sold",
        "totalLabel": "Cost of Goods and Services Sold, Total",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r54",
      "r55",
      "r663",
      "r873",
      "r878",
      "r973",
      "r1166"
     ]
    },
    "us-gaap_CostOfRevenue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfRevenue",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total costs",
        "label": "Cost of Revenue",
        "documentation": "The aggregate cost of goods produced and sold and services rendered during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r156",
      "r158",
      "r159",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r622",
      "r889",
      "r1237"
     ]
    },
    "us-gaap_CostOfRevenueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfRevenueAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Costs",
        "label": "Cost of Revenue [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfSalesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CostOfSalesMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of Revenues",
        "label": "Cost of Sales [Member]",
        "documentation": "Primary financial statement caption encompassing cost of sales."
       }
      }
     },
     "auth_ref": [
      "r975"
     ]
    },
    "srt_CounterpartyNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "CounterpartyNameAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Counterparty Name [Axis]"
       }
      }
     },
     "auth_ref": [
      "r156",
      "r162",
      "r163",
      "r325",
      "r364",
      "r652",
      "r660",
      "r711",
      "r869",
      "r870",
      "r871",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1285",
      "r1286",
      "r1287",
      "r1288"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CreditConcentrationRiskMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit Concentration Risk",
        "label": "Credit Concentration Risk [Member]",
        "documentation": "Reflects the percentage that a specified receivable or amount at risk from a counterparty under a contractual arrangement is to a specified benchmark, such as total receivables, net revenues, pretax results. Risk is the materially adverse effects of loss attributable to (a) the failure to collect a significant receivable from a major customer or group of homogeneous accounts, or (b) a failure by a counterparty to perform under terms of a contractual arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CreditFacilityAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Facility [Axis]",
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r311",
      "r1235"
     ]
    },
    "us-gaap_CreditFacilityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CreditFacilityDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Credit Facility [Domain]",
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing."
       }
      }
     },
     "auth_ref": [
      "r311",
      "r1235"
     ]
    },
    "ssti_CreditFacilityExtendedMaturityDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "CreditFacilityExtendedMaturityDate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Credit facility extended maturity date.",
        "label": "Credit Facility Extended Maturity Date",
        "terseLabel": "Credit facility extended maturity date"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current Fiscal Year End Date",
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Concentration Risk",
        "label": "Customer Concentration Risk [Member]",
        "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": [
      "r231",
      "r1189"
     ]
    },
    "ssti_CustomerOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "CustomerOneMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer One",
        "label": "Customer One [Member]",
        "documentation": "Customer one."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "CustomerRelationshipsMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer Relationships [Member]",
        "terseLabel": "Customer Relationships",
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships."
       }
      }
     },
     "auth_ref": [
      "r948",
      "r1212",
      "r1213",
      "r1214",
      "r1215",
      "r1217",
      "r1219",
      "r1222",
      "r1223"
     ]
    },
    "ssti_CustomerThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "CustomerThreeMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Three",
        "documentation": "Customer three.",
        "label": "Customer Three [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_CustomerTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "CustomerTwoMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Two",
        "label": "Customer Two [Member]",
        "documentation": "Customer two."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangements1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financing Arrangements",
        "label": "Debt Disclosure [Text Block]",
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants."
       }
      }
     },
     "auth_ref": [
      "r69",
      "r156",
      "r157",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r310",
      "r311",
      "r321",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r337",
      "r344",
      "r345",
      "r347",
      "r566",
      "r634"
     ]
    },
    "us-gaap_DebtInstrumentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Debt Instrument [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": [
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r328",
      "r333",
      "r334",
      "r335",
      "r336",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r346",
      "r566",
      "r709",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r985",
      "r1173",
      "r1174",
      "r1176",
      "r1180",
      "r1303",
      "r1304"
     ]
    },
    "us-gaap_DebtInstrumentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtInstrumentTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Long-Term Debt Instruments [Table]",
        "documentation": "Disclosure of information about long-term debt instrument or arrangement."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r26",
      "r29",
      "r33",
      "r71",
      "r72",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r328",
      "r333",
      "r334",
      "r335",
      "r336",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r346",
      "r566",
      "r709",
      "r900",
      "r901",
      "r902",
      "r903",
      "r904",
      "r985",
      "r1173",
      "r1174",
      "r1176",
      "r1180",
      "r1303",
      "r1304"
     ]
    },
    "us-gaap_DebtWeightedAverageInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DebtWeightedAverageInterestRate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average interest rate",
        "label": "Debt, Weighted Average Interest Rate",
        "documentation": "Weighted average interest rate of debt outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredCosts",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails": {
       "parentTag": "us-gaap_OtherAssetsNoncurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred commissions",
        "label": "Deferred Costs, Noncurrent",
        "totalLabel": "Deferred Costs, Noncurrent, Total",
        "documentation": "Amount of deferred cost, excluding capitalized cost related to contract with customer; classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r1111"
     ]
    },
    "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Prepaid Expenses and Other Current Assets",
        "label": "Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]",
        "documentation": "Tabular disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet; and other deferred costs."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredCostsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredCostsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred commissions",
        "label": "Deferred Costs, Current",
        "totalLabel": "Deferred Costs, Current, Total",
        "documentation": "Sum of the carrying amounts as of the balance sheet date of deferred costs capitalized at the end of the reporting period that are expected to be charged against earnings within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r1114"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred Income Tax Expense (Benefit)",
        "terseLabel": "Deferred taxes",
        "totalLabel": "Deferred Income Tax Expense (Benefit), Total",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r97",
      "r1173",
      "r1179"
     ]
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax liability",
        "label": "Deferred Income Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r451",
      "r452",
      "r713"
     ]
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Depreciation",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Depreciation",
        "totalLabel": "Depreciation, Total",
        "terseLabel": "Depreciation of property and equipment",
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r23",
      "r142",
      "r872",
      "r873",
      "r875",
      "r877"
     ]
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation Of Revenue [Line Items]",
        "label": "Disaggregation of Revenue [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": [
      "r391",
      "r392",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation Of Revenue [Table]",
        "label": "Disaggregation of Revenue [Table]",
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r391",
      "r392",
      "r910",
      "r911",
      "r912",
      "r913",
      "r914",
      "r915",
      "r916"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlans"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Incentive Plans",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r406",
      "r410",
      "r439",
      "r440",
      "r442",
      "r925"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Period Focus",
        "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": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Year Focus",
        "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": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "terseLabel": "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": []
    },
    "dei_DocumentQuarterlyReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentQuarterlyReport",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Quarterly Report",
        "label": "Document Quarterly Report",
        "documentation": "Boolean flag that is true only for a form used as an quarterly report."
       }
      }
     },
     "auth_ref": [
      "r1019"
     ]
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Transition Report",
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r1051"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "DocumentType",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "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": []
    },
    "ssti_DomesticFinancialInstitutionOneMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "DomesticFinancialInstitutionOneMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Domestic Financial Institution One",
        "label": "Domestic Financial Institution One [Member]",
        "documentation": "Domestic financial institution one."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_DomesticFinancialInstitutionThreeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "DomesticFinancialInstitutionThreeMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Domesticfinancialinstitutionthree.",
        "label": "Domestic Financial Institution Three [Member]",
        "terseLabel": "Domestic Financial Institution Three"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_DomesticFinancialInstitutionTwoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "DomesticFinancialInstitutionTwoMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Domestic Financial Institution Two",
        "label": "Domestic Financial Institution Two [Member]",
        "documentation": "Domestic financial institution two."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]",
        "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year"
       }
      }
     },
     "auth_ref": [
      "r1062"
     ]
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net income per share, basic",
        "label": "Earnings Per Share, Basic",
        "totalLabel": "Earnings Per Share, Basic, Total",
        "terseLabel": "Net loss per share, 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": [
      "r110",
      "r138",
      "r171",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r185",
      "r187",
      "r189",
      "r190",
      "r191",
      "r195",
      "r351",
      "r445",
      "r470",
      "r542",
      "r591",
      "r592",
      "r704",
      "r727",
      "r879"
     ]
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net income per share, diluted",
        "label": "Earnings Per Share, Diluted",
        "totalLabel": "Earnings Per Share, Diluted, Total",
        "terseLabel": "Net loss per share, 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": [
      "r110",
      "r138",
      "r171",
      "r172",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r178",
      "r187",
      "r189",
      "r190",
      "r191",
      "r195",
      "r351",
      "r445",
      "r470",
      "r542",
      "r591",
      "r592",
      "r704",
      "r727",
      "r879"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShare"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Income (Loss) per Share",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r184",
      "r192",
      "r193",
      "r194"
     ]
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effect of exchange rate on cash and cash equivalents",
        "label": "Effect of Exchange Rate on Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Including Discontinued Operation",
        "totalLabel": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations, Total",
        "documentation": "Amount of increase (decrease) from effect of exchange rate change on cash and cash equivalent, and cash and cash equivalent restricted to withdrawal or usage; held in foreign currency; including, but not limited to, discontinued operation. Cash includes, but is not limited to, currency on hand, demand deposit with financial institution, and account with general characteristic of demand deposit. Cash equivalent includes, but is not limited to, short-term, highly liquid investment that is both readily convertible to known amount of cash and so near maturity that it presents insignificant risk of change in value because of change in interest rate."
       }
      }
     },
     "auth_ref": [
      "r1302"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Line Items]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [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": [
      "r1268"
     ]
    },
    "us-gaap_EmployeeSeveranceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeSeveranceMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Severance [Member]",
        "terseLabel": "Employee Severance",
        "documentation": "Termination of an employee associated with exit from or disposal of business activities or restructurings pursuant to a plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Employee Stock Option [Member]",
        "terseLabel": "Employee Stock Option",
        "verboseLabel": "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": [
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252",
      "r1253",
      "r1254",
      "r1255",
      "r1256",
      "r1257",
      "r1258",
      "r1259",
      "r1260",
      "r1261",
      "r1262",
      "r1263",
      "r1264",
      "r1265",
      "r1266",
      "r1267"
     ]
    },
    "ssti_EmployeeStockPurchasePlanOfferingPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "EmployeeStockPurchasePlanOfferingPeriod",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee stock purchase plan offering period",
        "label": "Employee Stock Purchase Plan Offering Period",
        "documentation": "Employee stock purchase plan offering period."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine2": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line Two",
        "label": "Entity Address, Address Line Two",
        "documentation": "Address Line 2 such as Street or Suite number"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "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": [
      "r1017"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Common Stock, Shares Outstanding",
        "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": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Current Reporting Status",
        "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_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Emerging Growth Company",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r1017"
     ]
    },
    "dei_EntityExTransitionPeriod": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityExTransitionPeriod",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Ex Transition Period",
        "label": "Entity Ex Transition Period",
        "documentation": "Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards."
       }
      }
     },
     "auth_ref": [
      "r1102"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Securities Act 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": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Filer Category",
        "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": [
      "r1017"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Interactive Data Current",
        "terseLabel": "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": [
      "r1101"
     ]
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "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": [
      "r1017"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Shell Company",
        "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": [
      "r1017"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r1017"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "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": [
      "r1017"
     ]
    },
    "ecd_EqtyAwrdsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EqtyAwrdsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments, Footnote [Text Block]",
        "terseLabel": "Equity Awards Adjustments, Footnote"
       }
      }
     },
     "auth_ref": [
      "r1056"
     ]
    },
    "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]",
        "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "ecd_EqtyAwrdsAdjsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EqtyAwrdsAdjsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Awards Adjustments [Member]",
        "terseLabel": "Equity Awards Adjustments"
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]",
        "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table"
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component",
        "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",
      "r102",
      "r109",
      "r110",
      "r133",
      "r134",
      "r135",
      "r164",
      "r165",
      "r166",
      "r169",
      "r177",
      "r179",
      "r181",
      "r197",
      "r237",
      "r241",
      "r281",
      "r350",
      "r377",
      "r445",
      "r457",
      "r458",
      "r466",
      "r467",
      "r468",
      "r471",
      "r541",
      "r542",
      "r569",
      "r571",
      "r572",
      "r573",
      "r574",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r590",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r631",
      "r635",
      "r637",
      "r646",
      "r724",
      "r742",
      "r743",
      "r744",
      "r768",
      "r825"
     ]
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "EquityValuationAssumptionDifferenceFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]",
        "terseLabel": "Equity Valuation Assumption Difference, Footnote"
       }
      }
     },
     "auth_ref": [
      "r1066"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ErrCompAnalysisTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Erroneous Compensation Analysis [Text Block]",
        "terseLabel": "Erroneous Compensation Analysis"
       }
      }
     },
     "auth_ref": [
      "r1024",
      "r1034",
      "r1044",
      "r1076"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ErrCompRecoveryTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Erroneously Awarded Compensation Recovery [Table]",
        "terseLabel": "Erroneously Awarded Compensation Recovery"
       }
      }
     },
     "auth_ref": [
      "r1021",
      "r1031",
      "r1041",
      "r1073"
     ]
    },
    "ssti_EscrowClaimReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "EscrowClaimReceivable",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails": {
       "parentTag": "us-gaap_OtherAssetsNoncurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Escrow claim receivable.",
        "label": "Escrow Claim Receivable",
        "terseLabel": "Escrow claim"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_EscrowDepositDisbursementsRelatedToAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "EscrowDepositDisbursementsRelatedToAcquisition",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Indemnification escrow cash",
        "label": "Escrow Deposit Disbursements Related To Acquisition",
        "documentation": "Amount of escrow deposit disbursements related to acquisition includes only cash"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Executive Category [Axis]",
        "terseLabel": "Executive Category:"
       }
      }
     },
     "auth_ref": [
      "r1072"
     ]
    },
    "ssti_FairValueAdjustmentOfContingentConsideration": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "FairValueAdjustmentOfContingentConsideration",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Change in fair value of contingent consideration",
        "terseLabel": "Contingent consideration",
        "label": "Fair Value Adjustment Of Contingent Consideration",
        "documentation": "Fair value adjustment of contingent consideration."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV",
        "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": [
      "r335",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r593",
      "r595",
      "r596",
      "r597",
      "r598",
      "r607",
      "r609",
      "r611",
      "r618",
      "r655",
      "r656",
      "r657",
      "r863",
      "r901",
      "r902",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r977",
      "r980",
      "r984"
     ]
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueByMeasurementFrequencyAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Frequency [Axis]",
        "documentation": "Information by measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r594",
      "r595",
      "r596",
      "r598",
      "r977",
      "r1294",
      "r1300"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value Disclosures [Text Block]",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r596",
      "r603",
      "r605",
      "r606",
      "r607",
      "r611",
      "r612",
      "r613",
      "r614",
      "r615",
      "r700",
      "r977",
      "r981"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Level 3",
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r335",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r595",
      "r596",
      "r597",
      "r598",
      "r609",
      "r618",
      "r657",
      "r863",
      "r901",
      "r902",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r977",
      "r980",
      "r984"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Liabilities Measured On Recurring Basis Unobservable Input Reconciliation [Line Items]",
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [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": [
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Liabilities Measured On Recurring Basis Unobservable Input Reconciliation [Table]",
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table]",
        "documentation": "Disclosure of information about financial instrument liability measured at fair value on recurring basis using unobservable input."
       }
      }
     },
     "auth_ref": [
      "r599",
      "r600",
      "r601",
      "r602",
      "r603",
      "r604",
      "r610"
     ]
    },
    "us-gaap_FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueLiabilitiesMeasuredOnRecurringBasisUnobservableInputReconciliationTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Liabilities Measured on Recurring Basis, Unobservable Input Reconciliation [Table Text Block]",
        "terseLabel": "Summary of Changes in Fair Value of Contingent Consideration Liabilities",
        "documentation": "Tabular disclosure of the fair value measurement of liabilities using significant unobservable inputs (Level 3), a reconciliation of the beginning and ending balances, separately presenting changes attributable to the following: (1) total gains or losses for the period (realized and unrealized), segregating those gains or losses included in earnings (or changes in net assets), and gains or losses recognized in other comprehensive income (loss) and a description of where those gains or losses included in earnings (or changes in net assets) are reported in the statement of income (or activities); (2) purchases, sales, issues, and settlements (each type disclosed separately); and (3) transfers in and transfers out of Level 3 (for example, transfers due to changes in the observability of significant inputs) by class of liability."
       }
      }
     },
     "auth_ref": [
      "r599",
      "r604",
      "r610"
     ]
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementFrequencyDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measurement Frequency [Domain]",
        "documentation": "Measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r594",
      "r595",
      "r596",
      "r598",
      "r977",
      "r1294",
      "r1300"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Period Increase (Decrease), Total",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Period Increase (Decrease)",
        "terseLabel": "Change in fair value of contingent consideration",
        "documentation": "Amount of increase (decrease) of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r1296",
      "r1299"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPurchases",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingent consideration - Forensic Logic (Note 4 - Acquistions)",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Purchases",
        "documentation": "Amount of purchases of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r602",
      "r608",
      "r610"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilitySettlements",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Settlements",
        "terseLabel": "Payment of contingent consideration liability",
        "documentation": "Amount of settlements of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r602",
      "r610"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Transfers, Net, Total",
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability, Transfers, Net",
        "terseLabel": "Transfers into or out of level 3",
        "documentation": "Amount of transfers of financial instrument classified as a liability into (out of) level 3 of the fair value hierarchy."
       }
      }
     },
     "auth_ref": [
      "r1297",
      "r1299"
     ]
    },
    "us-gaap_FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementWithUnobservableInputsReconciliationsRecurringBasisLiabilityValue",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Measurement with Unobservable Inputs Reconciliation, Recurring Basis, Liability Value",
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "Ending balance",
        "terseLabel": "Contingent consideration",
        "documentation": "Fair value of financial instrument classified as a liability measured using unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r599",
      "r610"
     ]
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV",
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r335",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r593",
      "r595",
      "r596",
      "r597",
      "r598",
      "r607",
      "r609",
      "r611",
      "r618",
      "r655",
      "r656",
      "r657",
      "r863",
      "r901",
      "r902",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921",
      "r977",
      "r980",
      "r984"
     ]
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FairValueMeasurementsRecurringMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Fair Value, Recurring [Member]",
        "terseLabel": "Fair Value Measurements Recurring",
        "verboseLabel": "Fair Value Measurements Recurring",
        "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value."
       }
      }
     },
     "auth_ref": [
      "r977",
      "r1291",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1300"
     ]
    },
    "ssti_FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "FairValueOfCommonStockIssuedAsConsiderationForBusinessAcquisition",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value of common stock issued as consideration for acquisitions",
        "label": "Fair Value Of Common Stock Issued As Consideration For Business Acquisition",
        "documentation": "Fair value of common stock issued as consideration for business acquisition."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FeaturesOfConvertiblePreferredStockAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FeaturesOfConvertiblePreferredStockAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Features of Convertible Preferred Stock [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_FinancingReceivableAllowanceForCreditLossesAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "FinancingReceivableAllowanceForCreditLossesAdjustment",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails": {
       "parentTag": "ssti_AccountsReceivableAndContractAssetCurrent",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccountsReceivableAndContractAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Allowance for credit losses",
        "label": "Financing Receivable Allowance for Credit Losses Adjustment",
        "terseLabel": "Allowance for potential credit losses",
        "documentation": "Financing receivable allowance for credit losses adjustment."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails"
     ],
     "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": "Finite-Lived Intangible Asset, Expected Amortization, after Year Four",
        "terseLabel": "Thereafter"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "terseLabel": "Weighted Average Amortization Period (in years)",
        "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_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "negatedTerseLabel": "Accumulated Amortization",
        "terseLabel": "Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r119",
      "r243",
      "r272",
      "r866"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "terseLabel": "2026",
        "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": [
      "r274",
      "r862",
      "r866"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Remainder of Fiscal Year",
        "terseLabel": "Remainder of 2025",
        "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": [
      "r1356"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "terseLabel": "2029",
        "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": [
      "r274",
      "r862",
      "r866"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "terseLabel": "2028",
        "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": [
      "r274",
      "r862",
      "r866"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "terseLabel": "2027",
        "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": [
      "r274",
      "r862",
      "r866"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "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": [
      "r265",
      "r267",
      "r268",
      "r269",
      "r271",
      "r272",
      "r275",
      "r276",
      "r664",
      "r665",
      "r753",
      "r862",
      "r866",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r957",
      "r958",
      "r959",
      "r960",
      "r961",
      "r962",
      "r963",
      "r964",
      "r965",
      "r966"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Gross",
        "totalLabel": "Finite-Lived Intangible Assets, Gross, Total",
        "terseLabel": "Gross",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r243",
      "r272",
      "r665",
      "r866"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Finite Lived Intangible 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": [
      "r265",
      "r272",
      "r275",
      "r276",
      "r278",
      "r664",
      "r862",
      "r866",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r957",
      "r958",
      "r959",
      "r960",
      "r961",
      "r962",
      "r963",
      "r964",
      "r965",
      "r966"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "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": [
      "r265",
      "r267",
      "r268",
      "r269",
      "r271",
      "r272",
      "r275",
      "r276",
      "r753",
      "r862",
      "r866",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r957",
      "r958",
      "r959",
      "r960",
      "r961",
      "r962",
      "r963",
      "r964",
      "r965",
      "r966"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      },
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Intangible assets, net",
        "label": "Finite-Lived Intangible Assets, Net",
        "periodStartLabel": "Finite-Lived Intangible Assets, Net, Beginning Balance",
        "periodEndLabel": "Finite-Lived Intangible Assets, Net, Ending Balance",
        "terseLabel": "Total",
        "totalLabel": "Total",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r664",
      "r1219"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Remaining Amortization Period",
        "terseLabel": "Intangible assets amortization period",
        "documentation": "Remaining amortization period 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": [
      "r664"
     ]
    },
    "ssti_ForensicLogicLlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "ForensicLogicLlcMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forensic Logic, LLC [Member]",
        "terseLabel": "Forensic Logic",
        "documentation": "Forensic logic, LLC."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r1028",
      "r1038",
      "r1048",
      "r1080"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Expense of Enforcement, Amount",
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r1028",
      "r1038",
      "r1048",
      "r1080"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r1028",
      "r1038",
      "r1048",
      "r1080"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]",
        "terseLabel": "Forgone Recovery, Explanation of Impracticability"
       }
      }
     },
     "auth_ref": [
      "r1028",
      "r1038",
      "r1048",
      "r1080"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Forgone Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r1028",
      "r1038",
      "r1048",
      "r1080"
     ]
    },
    "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]",
        "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year"
       }
      }
     },
     "auth_ref": [
      "r1061"
     ]
    },
    "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GainLossOnSaleOfPropertyPlantEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Gain (Loss) on Disposition of Property Plant Equipment",
        "totalLabel": "Gain (Loss) on Disposition of Property Plant Equipment, Total",
        "negatedLabel": "Loss on disposal of property and equipment",
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property."
       }
      }
     },
     "auth_ref": [
      "r7"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "General and administrative",
        "label": "General and Administrative Expense",
        "totalLabel": "General and Administrative Expense, Total",
        "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line."
       }
      }
     },
     "auth_ref": [
      "r58",
      "r805"
     ]
    },
    "us-gaap_GeneralAndAdministrativeExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GeneralAndAdministrativeExpenseMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "General and Administrative",
        "label": "General and Administrative Expense [Member]",
        "documentation": "Primary financial statement caption encompassing general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r58"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill",
        "totalLabel": "Goodwill, Total",
        "verboseLabel": "Balance, beginning of year",
        "terseLabel": "Balance, end of year",
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "Ending balance",
        "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r118",
      "r245",
      "r701",
      "r890",
      "r898",
      "r927",
      "r931",
      "r932",
      "r970",
      "r978",
      "r986",
      "r1202",
      "r1209",
      "r1281"
     ]
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillAcquiredDuringPeriod",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Acquisition (Note 4 - Acquisitions)",
        "verboseLabel": "Goodwill recorded on acquisition of LEEDS",
        "label": "Goodwill, Acquired During Period",
        "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination."
       }
      }
     },
     "auth_ref": [
      "r248",
      "r529",
      "r532",
      "r536",
      "r898"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwill"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill Disclosure [Text Block]",
        "documentation": "The entire disclosure for goodwill."
       }
      }
     },
     "auth_ref": [
      "r244",
      "r246",
      "r256",
      "r258",
      "r259",
      "r261",
      "r262",
      "r263",
      "r898"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [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": [
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r255",
      "r257",
      "r898"
     ]
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross profit",
        "label": "Gross Profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r56",
      "r89",
      "r156",
      "r158",
      "r159",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r622",
      "r883",
      "r889",
      "r1187",
      "r1194",
      "r1195",
      "r1196",
      "r1197",
      "r1237"
     ]
    },
    "ssti_ImpairmentOfPropertyAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "ImpairmentOfPropertyAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_CostOfRevenue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Impairment Of Property And Equipment",
        "terseLabel": "Impairment of property and equipment",
        "documentation": "Impairment of property and equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "totalLabel": "Loss before income taxes",
        "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": [
      "r53",
      "r85",
      "r89",
      "r705",
      "r707",
      "r721",
      "r874",
      "r876",
      "r878",
      "r883",
      "r889",
      "r1187",
      "r1194",
      "r1195",
      "r1196",
      "r1197"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement Location",
        "label": "Statement of Income Location, Balance [Axis]",
        "documentation": "Information by location in statement of income where disaggregated amount is reported."
       }
      }
     },
     "auth_ref": [
      "r282",
      "r288",
      "r294",
      "r551",
      "r556",
      "r557",
      "r565",
      "r600",
      "r604",
      "r610",
      "r623",
      "r624",
      "r625",
      "r737",
      "r739",
      "r810",
      "r862",
      "r863",
      "r927",
      "r932",
      "r975",
      "r976",
      "r979",
      "r984",
      "r1271",
      "r1273",
      "r1318"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement Location",
        "label": "Statement of Income Location, Balance [Domain]",
        "documentation": "Location in statement of income where disaggregated amount is reported."
       }
      }
     },
     "auth_ref": [
      "r288",
      "r294",
      "r551",
      "r556",
      "r557",
      "r565",
      "r600",
      "r604",
      "r610",
      "r623",
      "r624",
      "r625",
      "r737",
      "r739",
      "r810",
      "r862",
      "r863",
      "r927",
      "r932",
      "r975",
      "r976",
      "r979",
      "r984",
      "r1271",
      "r1273",
      "r1318"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income Tax Expense (Benefit), Total",
        "label": "Income Tax Expense (Benefit)",
        "verboseLabel": "Provision for income taxes",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r92",
      "r98",
      "r156",
      "r180",
      "r181",
      "r196",
      "r214",
      "r224",
      "r453",
      "r454",
      "r462",
      "r728",
      "r874",
      "r876",
      "r878",
      "r926"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid for income taxes",
        "label": "Income Taxes Paid, Net",
        "totalLabel": "Income Taxes Paid, Net, Total",
        "documentation": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r152",
      "r455",
      "r456"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Increase (Decrease) in Accounts Payable",
        "totalLabel": "Increase (Decrease) in Accounts Payable, Total",
        "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": [
      "r6"
     ]
    },
    "ssti_IncreaseDecreaseInAccountsReceivableAndContractAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "IncreaseDecreaseInAccountsReceivableAndContractAsset",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase Decrease In Accounts Receivable And Contract Asset",
        "documentation": "Increase decrease in accounts receivable and contract asset.",
        "negatedLabel": "Accounts receivable and contract asset"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Accrued Liabilities and Other Operating Liabilities",
        "terseLabel": "Accrued expenses and other liabilities",
        "documentation": "Amount of increase (decrease) in accrued expenses, and obligations classified as other."
       }
      }
     },
     "auth_ref": [
      "r1171"
     ]
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "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": [
      "r662",
      "r1171"
     ]
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in operating assets and liabilities:",
        "label": "Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, Increase (Decrease) in Operating Capital [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Prepaid expenses and other assets",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "totalLabel": "Increase (Decrease) in Prepaid Expense and Other Assets, Total",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "ssti_IncreaseInCommonStockCapitalSharesReservedForFutureIssuance": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "IncreaseInCommonStockCapitalSharesReservedForFutureIssuance",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase in common stock reserved for issuance",
        "label": "Increase In Common Stock Capital Shares Reserved For Future Issuance",
        "documentation": "Increase in common stock capital shares reserved for future issuance."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IndemnificationGuaranteeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IndemnificationGuaranteeMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Indemnification Agreement [Member]",
        "terseLabel": "Indemnification Escrow",
        "documentation": "An agreement (contract) that contingently requires the guarantor to make payments to the guaranteed party in compensation for that party's or parties' loss or injury attributable to specified events or actions, such as a patent infringement action against an entity that relied on certain representations as to ownership rights made by a software vendor."
       }
      }
     },
     "auth_ref": [
      "r1234"
     ]
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "IndividualAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Individual [Axis]",
        "terseLabel": "Individual:"
       }
      }
     },
     "auth_ref": [
      "r1028",
      "r1038",
      "r1048",
      "r1072",
      "r1080",
      "r1084",
      "r1092"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]",
        "terseLabel": "Insider Trading Arrangements:"
       }
      }
     },
     "auth_ref": [
      "r1090"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]",
        "terseLabel": "Insider Trading Policies and Procedures:"
       }
      }
     },
     "auth_ref": [
      "r1020",
      "r1096"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTrdPoliciesProcAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures Adopted [Flag]",
        "terseLabel": "Insider Trading Policies and Procedures Adopted"
       }
      }
     },
     "auth_ref": [
      "r1020",
      "r1096"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]",
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted"
       }
      }
     },
     "auth_ref": [
      "r1020",
      "r1096"
     ]
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNet1"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Intangible Assets, Net",
        "documentation": "The entire disclosure for all or part of the information related to intangible assets."
       }
      }
     },
     "auth_ref": [
      "r264",
      "r277",
      "r279",
      "r861",
      "r862"
     ]
    },
    "us-gaap_IntellectualPropertyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "IntellectualPropertyMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intellectual Property",
        "label": "Intellectual Property [Member]",
        "documentation": "Intangible asset arising from original creative thought. Include, but is not limited to, trademarks, patents, and copyrights."
       }
      }
     },
     "auth_ref": [
      "r1212",
      "r1213",
      "r1214",
      "r1215",
      "r1217",
      "r1219",
      "r1222",
      "r1223"
     ]
    },
    "us-gaap_InterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestExpense",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest expense",
        "label": "Interest Expense, Operating and Nonoperating",
        "totalLabel": "Interest Expense, Total",
        "documentation": "Amount of interest expense classified as operating and nonoperating. Includes, but is not limited to, cost of borrowing accounted for as interest expense."
       }
      }
     },
     "auth_ref": [
      "r196",
      "r210",
      "r213",
      "r215",
      "r224",
      "r633",
      "r889",
      "r890",
      "r1349"
     ]
    },
    "us-gaap_InterestIncomeExpenseNonoperatingNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestIncomeExpenseNonoperatingNet",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest expense, net",
        "label": "Interest Income (Expense), Nonoperating",
        "documentation": "Amount of interest income (expense) classified as nonoperating."
       }
      }
     },
     "auth_ref": [
      "r889",
      "r973",
      "r1128",
      "r1194"
     ]
    },
    "us-gaap_InterestPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "InterestPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid for interest",
        "label": "Interest Paid, Excluding Capitalized Interest, Operating Activity",
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount."
       }
      }
     },
     "auth_ref": [
      "r147",
      "r150",
      "r151"
     ]
    },
    "ssti_LeaseTerminationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "LeaseTerminationMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lease Termination [Member]",
        "documentation": "Lease termination",
        "terseLabel": "Lease Termination"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_LetterOfCreditSubfacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "LetterOfCreditSubfacilityMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Letter of credit subfacility.",
        "label": "Letter Of Credit Subfacility [Member]",
        "terseLabel": "Letter of Credit Sub-facility"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "Liabilities",
        "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r36",
      "r37",
      "r38",
      "r40",
      "r41",
      "r42",
      "r43",
      "r156",
      "r158",
      "r159",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r545",
      "r548",
      "r549",
      "r622",
      "r782",
      "r882",
      "r905",
      "r1015",
      "r1237",
      "r1306",
      "r1307"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and stockholders' equity",
        "label": "Liabilities and Equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r50",
      "r84",
      "r719",
      "r986",
      "r1002",
      "r1003",
      "r1173",
      "r1178",
      "r1199",
      "r1301"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liabilities and Stockholders' Equity",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current liabilities",
        "label": "Liabilities, Current",
        "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": [
      "r38",
      "r116",
      "r156",
      "r158",
      "r159",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r545",
      "r548",
      "r549",
      "r622",
      "r986",
      "r1237",
      "r1306",
      "r1307"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current liabilities",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesFairValueDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LiabilitiesFairValueDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Fair Value Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LineOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCredit",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit facility outstanding",
        "label": "Long-Term Line of Credit",
        "totalLabel": "Long-Term Line of Credit, Total",
        "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement."
       }
      }
     },
     "auth_ref": [
      "r14",
      "r82",
      "r1315"
     ]
    },
    "us-gaap_LineOfCreditFacilityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lender Name [Axis]",
        "documentation": "Information by name of lender, which may be a single entity (for example, but not limited to, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r39",
      "r1173",
      "r1176",
      "r1235",
      "r1236"
     ]
    },
    "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityCurrentBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit facility current borrowing capacity under loan",
        "label": "Line of Credit Facility, Current Borrowing Capacity",
        "documentation": "Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r39"
     ]
    },
    "us-gaap_LineOfCreditFacilityExpirationDate1": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityExpirationDate1",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Credit facility maturity date",
        "label": "Line of Credit Facility, Expiration Date",
        "documentation": "Date the credit facility terminates, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r39"
     ]
    },
    "us-gaap_LineOfCreditFacilityInitiationDate1": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityInitiationDate1",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit agreement date",
        "label": "Line of Credit Facility, Initiation Date",
        "documentation": "Date the credit facility first became available, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r39"
     ]
    },
    "us-gaap_LineOfCreditFacilityLenderDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityLenderDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit Facility, Lender [Domain]",
        "documentation": "Identification of the lender, which may be a single entity (for example, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit, including a letter of credit facility."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r39",
      "r1173",
      "r1176",
      "r1235",
      "r1236"
     ]
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Credit facility maximum borrowing capacity under loan",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility."
       }
      }
     },
     "auth_ref": [
      "r35",
      "r39"
     ]
    },
    "ssti_LineOfCreditWeightedAverageInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "LineOfCreditWeightedAverageInterestRate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average interest rate",
        "label": "Line of Credit Weighted Average Interest Rate.",
        "documentation": "Line of credit weighted average interest rate."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LinesOfCreditCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LinesOfCreditCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Line of Credit, Current",
        "terseLabel": "Line of credit",
        "documentation": "The carrying value as of the balance sheet date of the current portion of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement."
       }
      }
     },
     "auth_ref": [
      "r36",
      "r80"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossContingenciesByNatureOfContingencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingenciesByNatureOfContingencyAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency Nature [Axis]",
        "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r204",
      "r304",
      "r305",
      "r306",
      "r309",
      "r449",
      "r752",
      "r899",
      "r1230",
      "r1231"
     ]
    },
    "us-gaap_LossContingencyNatureDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "LossContingencyNatureDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Loss Contingency, Nature [Domain]",
        "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability."
       }
      }
     },
     "auth_ref": [
      "r204",
      "r304",
      "r305",
      "r306",
      "r309",
      "r449",
      "r752",
      "r899",
      "r1230",
      "r1231"
     ]
    },
    "ssti_MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maintenance, Support and Professional Software Development Services.",
        "label": "Maintenance, Support and Professional Software Development Services [Member]",
        "terseLabel": "Maintenance and Support Services and Professional Software Development Services"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer",
        "label": "Customer [Axis]"
       }
      }
     },
     "auth_ref": [
      "r231",
      "r909",
      "r912",
      "r996",
      "r1000",
      "r1316",
      "r1319",
      "r1320",
      "r1322",
      "r1323",
      "r1324",
      "r1325",
      "r1326",
      "r1327",
      "r1328",
      "r1329",
      "r1330",
      "r1331",
      "r1332",
      "r1333",
      "r1334",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340",
      "r1341",
      "r1342",
      "r1343",
      "r1344",
      "r1345",
      "r1346"
     ]
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MaximumMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]",
        "terseLabel": "Maximum"
       }
      }
     },
     "auth_ref": [
      "r204",
      "r305",
      "r306",
      "r307",
      "r308",
      "r405",
      "r434",
      "r435",
      "r436",
      "r449",
      "r598",
      "r661",
      "r736",
      "r738",
      "r752",
      "r774",
      "r775",
      "r832",
      "r834",
      "r836",
      "r837",
      "r839",
      "r843",
      "r844",
      "r846",
      "r847",
      "r859",
      "r860",
      "r896",
      "r906",
      "r924",
      "r927",
      "r934",
      "r937",
      "r980",
      "r981",
      "r982",
      "r983",
      "r997",
      "r1239",
      "r1308",
      "r1309",
      "r1310",
      "r1311",
      "r1312",
      "r1313"
     ]
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure [Axis]",
        "terseLabel": "Measure:"
       }
      }
     },
     "auth_ref": [
      "r1064"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Measure Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r1064"
     ]
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "MinimumMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum",
        "label": "Minimum [Member]"
       }
      }
     },
     "auth_ref": [
      "r204",
      "r305",
      "r306",
      "r307",
      "r308",
      "r405",
      "r434",
      "r435",
      "r436",
      "r449",
      "r598",
      "r661",
      "r736",
      "r738",
      "r752",
      "r774",
      "r775",
      "r832",
      "r834",
      "r836",
      "r837",
      "r839",
      "r843",
      "r844",
      "r846",
      "r847",
      "r859",
      "r860",
      "r896",
      "r906",
      "r924",
      "r927",
      "r934",
      "r937",
      "r980",
      "r981",
      "r982",
      "r997",
      "r1239",
      "r1308",
      "r1309",
      "r1310",
      "r1311",
      "r1312",
      "r1313"
     ]
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "MnpiDiscTimedForCompValFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]",
        "terseLabel": "MNPI Disclosure Timed for Compensation Value"
       }
      }
     },
     "auth_ref": [
      "r1083"
     ]
    },
    "us-gaap_MoneyMarketFundsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "MoneyMarketFundsAtCarryingValue",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money market fund amount",
        "label": "Money Market Funds, at Carrying Value",
        "documentation": "Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three-years ago does not become a cash equivalent when its remaining maturity is three months."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "MtrlTermsOfTrdArrTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Material Terms of Trading Arrangement [Text Block]",
        "terseLabel": "Material Terms of Trading Arrangement"
       }
      }
     },
     "auth_ref": [
      "r1091"
     ]
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer",
        "label": "Customer [Domain]"
       }
      }
     },
     "auth_ref": [
      "r231",
      "r909",
      "r912",
      "r996",
      "r1000",
      "r1316",
      "r1319",
      "r1320",
      "r1322",
      "r1323",
      "r1324",
      "r1325",
      "r1326",
      "r1327",
      "r1328",
      "r1329",
      "r1330",
      "r1331",
      "r1332",
      "r1333",
      "r1334",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340",
      "r1341",
      "r1342",
      "r1343",
      "r1344",
      "r1345",
      "r1346"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NamedExecutiveOfficersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Named Executive Officers, Footnote [Text Block]",
        "terseLabel": "Named Executive Officers, Footnote"
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Provided by (Used in) Financing Activity, Including Discontinued Operation",
        "totalLabel": "Net cash used in financing activities",
        "documentation": "Amount of cash inflow (outflow) from financing activity, including, but not limited to, discontinued operation. Financing activity includes, but is not limited to, obtaining resource from owner and providing return on, and return of, their investment; borrowing money and repaying amount borrowed, or settling obligation; and obtaining and paying for other resource obtained from creditor on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r149"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Provided by (Used in) Financing Activity, Including Discontinued Operation [Abstract]",
        "terseLabel": "Cash flows from financing activities:"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in investing activities",
        "label": "Cash Provided by (Used in) Investing Activity, Including Discontinued Operation",
        "documentation": "Amount of cash inflow (outflow) from investing activity, including, but not limited to, discontinued operation. Investing activity includes, but is not limited to, making and collecting loan, acquiring and disposing of debt and equity instruments, property, plant, and equipment, and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r149"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from investing activities:",
        "label": "Cash Provided by (Used in) Investing Activity, Including Discontinued Operation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash Provided by (Used in) Operating Activity, Including Discontinued Operation",
        "totalLabel": "Net cash provided by (used in) operating activities",
        "documentation": "Amount of cash inflow (outflow) from operating activity, including, but not limited to, discontinued operation. Operating activity includes, but is not limited to, transaction, adjustment, and change in value not defined as investing or financing activity."
       }
      }
     },
     "auth_ref": [
      "r64",
      "r65",
      "r66"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from operating activities:",
        "label": "Cash Provided by (Used in) Operating Activity, Including Discontinued Operation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 0.0
      },
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited",
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Income (Loss)",
        "terseLabel": "Net Income (Loss)",
        "verboseLabel": "Net loss",
        "totalLabel": "Net loss",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r66",
      "r86",
      "r110",
      "r114",
      "r128",
      "r131",
      "r135",
      "r156",
      "r158",
      "r159",
      "r161",
      "r168",
      "r173",
      "r174",
      "r175",
      "r176",
      "r177",
      "r180",
      "r181",
      "r188",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r351",
      "r354",
      "r356",
      "r360",
      "r445",
      "r470",
      "r542",
      "r592",
      "r622",
      "r723",
      "r803",
      "r823",
      "r824",
      "r874",
      "r876",
      "r878",
      "r1013",
      "r1237"
     ]
    },
    "us-gaap_NetIncomeLossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NetIncomeLossAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Numerator:",
        "label": "Net Income (Loss) Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "Recent Accounting Pronouncements Adopted",
        "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": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonGaapMeasureDescriptionTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-GAAP Measure Description [Text Block]",
        "terseLabel": "Non-GAAP Measure Description"
       }
      }
     },
     "auth_ref": [
      "r1064"
     ]
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-NEOs [Member]",
        "terseLabel": "Non-NEOs"
       }
      }
     },
     "auth_ref": [
      "r1028",
      "r1038",
      "r1048",
      "r1072",
      "r1080"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonPeoNeoAvgCompActuallyPaidAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r1055"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonPeoNeoAvgTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO Average Total Compensation Amount",
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1054"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonPeoNeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-PEO NEO [Member]",
        "terseLabel": "Non-PEO NEO"
       }
      }
     },
     "auth_ref": [
      "r1072"
     ]
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted"
       }
      }
     },
     "auth_ref": [
      "r1091"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]",
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated"
       }
      }
     },
     "auth_ref": [
      "r1091"
     ]
    },
    "us-gaap_NonUsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NonUsMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "International",
        "label": "Non-US [Member]",
        "documentation": "Countries excluding the United States of America (US)."
       }
      }
     },
     "auth_ref": [
      "r1352",
      "r1353",
      "r1354",
      "r1355"
     ]
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total other expense, net",
        "label": "Nonoperating Income (Expense)",
        "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business)."
       }
      }
     },
     "auth_ref": [
      "r59"
     ]
    },
    "us-gaap_NonoperatingIncomeExpenseAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NonoperatingIncomeExpenseAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Nonoperating Income (Expense) [Abstract]",
        "terseLabel": "Other expense, net"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_NumberOfAgencies": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "NumberOfAgencies",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of agencies",
        "label": "Number of Agencies",
        "terseLabel": "Number of agencies"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_NumberOfCitiesInWhichEntityOperates": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "NumberOfCitiesInWhichEntityOperates",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of cities in which entity operates",
        "label": "Number Of Cities In Which Entity Operates",
        "documentation": "Number of cities in which entity operates."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_NumberOfCustomers": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "NumberOfCustomers",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of customers",
        "label": "Number Of Customers",
        "documentation": "Number of customers."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Number of financial institutions at which cash deposits are maintained",
        "documentation": "Number of financial institutions at which cash deposits are maintained.",
        "label": "Number Of Financial Institutions At Which Cash Deposits Are Maintained",
        "terseLabel": "Number of financial institutions at which cash deposits are maintained"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfOperatingSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "NumberOfOperatingSegments",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReportingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Number of Operating Segments",
        "terseLabel": "Number of Operating Segments",
        "verboseLabel": "Number of operating segment",
        "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": [
      "r890",
      "r1193"
     ]
    },
    "ssti_NumberOfSubsidiary": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "NumberOfSubsidiary",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of subsidiary",
        "label": "Number Of Subsidiary",
        "documentation": "Number of subsidiary."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_NumberOfUniversitiesAndCorporationsInWhichEntityOperates": {
     "xbrltype": "integerItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "NumberOfUniversitiesAndCorporationsInWhichEntityOperates",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of universities and corporations in which entity operates",
        "label": "Number Of Universities And Corporations In Which Entity Operates",
        "documentation": "Number of universities and corporations in which entity operates."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingExpenses",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Expenses",
        "totalLabel": "Total operating expenses",
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense."
       }
      }
     },
     "auth_ref": [
      "r878"
     ]
    },
    "us-gaap_OperatingExpensesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingExpensesAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating expenses",
        "label": "Operating Expenses [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Income (Loss)",
        "totalLabel": "Operating loss",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r874",
      "r878",
      "r883",
      "r1187",
      "r1194",
      "r1195",
      "r1196",
      "r1197"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liabilities, net of current portion",
        "verboseLabel": "Operating lease liabilities",
        "label": "Operating lease liabilities, current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r639"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liabilities",
        "label": "Operating Lease, Liability, Noncurrent",
        "verboseLabel": "Operating lease liabilities, net of current portion",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r639"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease right-of-use assets",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r638"
     ]
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusiness"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Organization and Description of Business",
        "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]",
        "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r111",
      "r112",
      "r113",
      "r756",
      "r757"
     ]
    },
    "us-gaap_OtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Other Assets, Current",
        "documentation": "Amount of current assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r126",
      "r986"
     ]
    },
    "us-gaap_OtherAssetsMiscellaneousNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsMiscellaneousNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails": {
       "parentTag": "us-gaap_OtherAssetsNoncurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Other Assets, Miscellaneous, Noncurrent",
        "documentation": "Amount of other miscellaneous assets expected to be realized or consumed after one year or normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      },
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total other assets",
        "terseLabel": "Other assets",
        "label": "Other Assets, Noncurrent",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r120"
     ]
    },
    "us-gaap_OtherAssetsNoncurrentDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherAssetsNoncurrentDisclosureAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfOtherLongtermAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Assets Noncurrent Disclosure [Abstract]",
        "label": "Other Assets, Noncurrent Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited",
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in foreign currency translation adjustment, net of taxes",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax",
        "totalLabel": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Total",
        "verboseLabel": "Foreign currency translation income (loss)",
        "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."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r724"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "totalLabel": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent, Total",
        "terseLabel": "Other comprehensive income",
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r9",
      "r77",
      "r129",
      "r132",
      "r177"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent [Abstract]",
        "terseLabel": "Other comprehensive loss:"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "OtherGuidanceIssuedButNotYetAdoptedPolicyPolicyTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other Guidance Issued But Not Yet Adopted Policy.",
        "label": "Other Guidance Issued But Not Yet Adopted Policy [Policy Text Block]",
        "terseLabel": "Other Guidance Issued But Not Yet Adopted"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Other Liabilities, Current",
        "totalLabel": "Other Liabilities, Current, Total",
        "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r986"
     ]
    },
    "us-gaap_OtherNoncurrentLiabilitiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherNoncurrentLiabilitiesMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Noncurrent Liabilities [Member]",
        "terseLabel": "Other Liabilities",
        "documentation": "Primary financial statement caption encompassing other noncurrent liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherNoncurrentLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherNoncurrentLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Other Long-term Liabilities",
        "label": "Other Noncurrent Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of other noncurrent liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_NonoperatingIncomeExpense",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Nonoperating Income (Expense)",
        "totalLabel": "Other Nonoperating Income (Expense), Total",
        "terseLabel": "Other expense, net",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r60",
      "r973"
     ]
    },
    "ecd_OtherPerfMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "OtherPerfMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Performance Measure, Amount",
        "terseLabel": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r1064"
     ]
    },
    "us-gaap_OtherPrepaidExpenseCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "OtherPrepaidExpenseCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other prepaid expenses",
        "label": "Other Prepaid Expense, Current",
        "documentation": "Amount of asset related to consideration paid in advance for other costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r1113",
      "r1200"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "OutstandingAggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Aggregate Erroneous Compensation Amount",
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1026",
      "r1036",
      "r1046",
      "r1078"
     ]
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery Compensation Amount",
        "terseLabel": "Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1029",
      "r1039",
      "r1049",
      "r1081"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Outstanding Recovery, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r1029",
      "r1039",
      "r1049",
      "r1081"
     ]
    },
    "ssti_PSU-BasedPerformanceBonusPlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PSU-BasedPerformanceBonusPlanMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PSU-Based Performance Bonus Plan [Member]",
        "documentation": "PSU-based performance bonus plan",
        "terseLabel": "PSU-Based Performance Bonus Plan"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_PatentsAndIntellectualPropertyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PatentsAndIntellectualPropertyMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Patents and Intellectual Property",
        "label": "Patents and Intellectual Property [Member]",
        "documentation": "Patents and Intellectual Property."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PatentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PatentsMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Patents [Member]",
        "terseLabel": "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": [
      "r1212",
      "r1213",
      "r1214",
      "r1215",
      "r1217",
      "r1219",
      "r1222",
      "r1223"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r1053"
     ]
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Payment of contingent consideration liability",
        "terseLabel": "Payment of contingent consideration liability",
        "label": "Payment for Contingent Consideration Liability, Financing Activities",
        "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "ssti_PaymentForInvestmentInIntangibleAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PaymentForInvestmentInIntangibleAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Investment in intangible and other assets",
        "label": "Payment For Investment In Intangible And Other Assets",
        "documentation": "Payment for investment in intangible and other assets."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchases of common stock",
        "label": "Payments for Repurchase of Common Stock",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r62"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquireBusinessesGross",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business acquisition purchase consideration in cash",
        "label": "Payments to Acquire Businesses, Gross",
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r521",
      "r927",
      "r932",
      "r968"
     ]
    },
    "us-gaap_PaymentsToAcquireProductiveAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquireProductiveAssets",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset acquisition purchase consideration in cash",
        "label": "Payments to Acquire Productive Assets",
        "totalLabel": "Payments to Acquire Productive Assets, Total",
        "documentation": "The cash outflow for purchases of and capital improvements on property, plant and equipment (capital expenditures), software, and other intangible assets."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r1282",
      "r1283",
      "r1284"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchase of property and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "totalLabel": "Payments to Acquire Property, Plant, and Equipment, Total",
        "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": [
      "r61"
     ]
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeerGroupIssuersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Peer Group Issuers, Footnote [Text Block]",
        "terseLabel": "Peer Group Issuers, Footnote"
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeerGroupTotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Peer Group Total Shareholder Return Amount",
        "terseLabel": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeoActuallyPaidCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Actually Paid Compensation Amount",
        "terseLabel": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1055"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO [Member]",
        "terseLabel": "PEO"
       }
      }
     },
     "auth_ref": [
      "r1072"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Name",
        "terseLabel": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r1065"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PeoTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "PEO Total Compensation Amount",
        "terseLabel": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1054"
     ]
    },
    "ssti_PercentageOfAssetsFairValueAdjustment": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PercentageOfAssetsFairValueAdjustment",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of assets, fair value adjustment.",
        "label": "Percentage of Assets, Fair Value Adjustment",
        "terseLabel": "Percentage of assets, fair value adjustment"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_PercentageOfDiscountedCashFlows": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PercentageOfDiscountedCashFlows",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Percentage of Discounted Cash Flows",
        "documentation": "Percentage of discounted cash flows",
        "terseLabel": "Percentage of discounted cash flows"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PercentageOfPSUsOutstandingBasedOnTargetLevelOfAchievement",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareParentheticalDe"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percentage of PSUs outstanding based on target level of achievement",
        "label": "Percentage of PSUs Outstanding Based on Target Level of Achievement",
        "documentation": "Percentage of PSUs outstanding based on target level of achievement."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_PercentageOfRevenueVolatility": {
     "xbrltype": "percentItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PercentageOfRevenueVolatility",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of revenue volatility.",
        "label": "Percentage Of Revenue Volatility",
        "terseLabel": "Percentage of revenue volatility"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_PerformanceBasedRestrictedStockUnitRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PerformanceBasedRestrictedStockUnitRSUMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Performance-based RSU",
        "label": "Performance Based Restricted Stock Unit R S U [Member]",
        "documentation": "Performance Based Restricted Stock Unit RSU."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Periodic increment of common stock reserved for future issuance",
        "label": "Periodic Increment Of Common Stock Capital Shares Reserved For Future Issuance",
        "documentation": "Periodic increment of common stock capital shares reserved for future issuance."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name",
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252",
      "r1253",
      "r1254",
      "r1255",
      "r1256",
      "r1257",
      "r1258",
      "r1259",
      "r1260",
      "r1261",
      "r1262",
      "r1263",
      "r1264",
      "r1265",
      "r1266",
      "r1267"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252",
      "r1253",
      "r1254",
      "r1255",
      "r1256",
      "r1257",
      "r1258",
      "r1259",
      "r1260",
      "r1261",
      "r1262",
      "r1263",
      "r1264",
      "r1265",
      "r1266",
      "r1267"
     ]
    },
    "ecd_PnsnAdjsPrrSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PnsnAdjsPrrSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Adjustments Prior Service Cost [Member]",
        "terseLabel": "Pension Adjustments Prior Service Cost"
       }
      }
     },
     "auth_ref": [
      "r1056"
     ]
    },
    "ecd_PnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Adjustments Service Cost [Member]",
        "terseLabel": "Pension Adjustments Service Cost"
       }
      }
     },
     "auth_ref": [
      "r1100"
     ]
    },
    "ecd_PnsnBnftsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PnsnBnftsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pension Benefits Adjustments, Footnote [Text Block]",
        "terseLabel": "Pension Benefits Adjustments, Footnote"
       }
      }
     },
     "auth_ref": [
      "r1055"
     ]
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, par value",
        "label": "Preferred Stock, Par or Stated Value 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": [
      "r44",
      "r362"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Preferred Stock, Shares Authorized",
        "terseLabel": "Preferred stock, shares authorized",
        "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": [
      "r44",
      "r784"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares issued",
        "label": "Preferred Stock, Shares Issued",
        "totalLabel": "Preferred Stock, Shares Issued, Total",
        "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt."
       }
      }
     },
     "auth_ref": [
      "r44",
      "r362"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares outstanding",
        "label": "Preferred Stock, Shares Outstanding",
        "periodStartLabel": "Preferred Stock, Shares Outstanding, Beginning Balance",
        "periodEndLabel": "Preferred Stock, Shares Outstanding, Ending Balance",
        "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": [
      "r44",
      "r784",
      "r802",
      "r1350",
      "r1351"
     ]
    },
    "us-gaap_PreferredStockValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PreferredStockValue",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Preferred Stock, Value, Issued, Total",
        "periodStartLabel": "Preferred Stock, Value, Issued, Beginning Balance",
        "periodEndLabel": "Preferred Stock, Value, Issued, Ending Balance",
        "label": "Preferred Stock, Value, Issued",
        "terseLabel": "Preferred stock: $0.005 par value; 20,000,000 shares authorized; no shares issued and outstanding as of March 31, 2024 and December 31, 2023, respectively",
        "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": [
      "r44",
      "r353",
      "r358",
      "r715",
      "r986"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      },
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total",
        "label": "Prepaid Expense and Other Assets, Current",
        "terseLabel": "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": [
      "r1115"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidExpenseAndOtherAssetsCurrentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Prepaid Expense and Other Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PrepaidInsurance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PrepaidInsurance",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid insurance",
        "label": "Prepaid Insurance",
        "documentation": "Amount of asset related to consideration paid in advance for insurance that provides economic benefits within a future period of one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r868",
      "r897",
      "r1200"
     ]
    },
    "ssti_PrepaidSoftwareAndLicensesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PrepaidSoftwareAndLicensesCurrent",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid software and licenses",
        "label": "Prepaid Software And Licenses Current",
        "documentation": "Prepaid software and licenses current."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProceedsFromIssuanceInitialPublicOffering": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromIssuanceInitialPublicOffering",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from initial public offering, net of commissions and discounts",
        "label": "Proceeds from Issuance Initial Public Offering",
        "documentation": "The cash inflow associated with the amount received from entity's first offering of stock to the public."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Excluding Option Exercised",
        "terseLabel": "Proceeds from employee stock purchase plan",
        "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Excludes option exercised."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r13"
     ]
    },
    "us-gaap_ProceedsFromLinesOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromLinesOfCredit",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from line of credit",
        "label": "Proceeds from Lines of Credit",
        "totalLabel": "Proceeds from Lines of Credit, Total",
        "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r1173",
      "r1176"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from exercise of stock options",
        "label": "Proceeds from Stock Options Exercised",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r13"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Axis]"
       }
      }
     },
     "auth_ref": [
      "r227",
      "r663",
      "r729",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r735",
      "r864",
      "r873",
      "r876",
      "r878",
      "r909",
      "r910",
      "r995",
      "r997",
      "r998",
      "r1001",
      "r1004",
      "r1107",
      "r1129",
      "r1130",
      "r1131",
      "r1132",
      "r1133",
      "r1134",
      "r1135",
      "r1136",
      "r1137",
      "r1138",
      "r1139",
      "r1140",
      "r1141",
      "r1142",
      "r1143",
      "r1144",
      "r1145",
      "r1146",
      "r1147",
      "r1148",
      "r1149",
      "r1150",
      "r1151",
      "r1152",
      "r1153",
      "r1154",
      "r1155",
      "r1156",
      "r1157",
      "r1158",
      "r1159",
      "r1160",
      "r1161",
      "r1162",
      "r1163",
      "r1164",
      "r1165",
      "r1167",
      "r1168",
      "r1169",
      "r1170",
      "r1232",
      "r1233",
      "r1316",
      "r1319",
      "r1320",
      "r1321",
      "r1322",
      "r1323",
      "r1324",
      "r1325",
      "r1326",
      "r1327",
      "r1328",
      "r1329",
      "r1330",
      "r1331",
      "r1332",
      "r1333",
      "r1334",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340",
      "r1341",
      "r1342",
      "r1343",
      "r1344",
      "r1345",
      "r1346"
     ]
    },
    "us-gaap_ProductionRelatedImpairmentsOrCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProductionRelatedImpairmentsOrCharges",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Impairment of property and equipment",
        "label": "Production Related Impairments or Charges",
        "totalLabel": "Production Related Impairments or Charges, Total",
        "documentation": "Nonrecurring impairment charges related to the write-off of production-related equipment and inventory. This tag is used when an Entity charges this cost to cost of goods sold."
       }
      }
     },
     "auth_ref": [
      "r54"
     ]
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Product and Service [Domain]"
       }
      }
     },
     "auth_ref": [
      "r227",
      "r663",
      "r729",
      "r730",
      "r731",
      "r732",
      "r733",
      "r734",
      "r735",
      "r864",
      "r873",
      "r876",
      "r878",
      "r909",
      "r910",
      "r995",
      "r997",
      "r998",
      "r1001",
      "r1004",
      "r1107",
      "r1129",
      "r1130",
      "r1131",
      "r1132",
      "r1133",
      "r1134",
      "r1135",
      "r1136",
      "r1137",
      "r1138",
      "r1139",
      "r1140",
      "r1141",
      "r1142",
      "r1143",
      "r1144",
      "r1145",
      "r1146",
      "r1147",
      "r1148",
      "r1149",
      "r1150",
      "r1151",
      "r1152",
      "r1153",
      "r1154",
      "r1155",
      "r1156",
      "r1157",
      "r1158",
      "r1159",
      "r1160",
      "r1161",
      "r1162",
      "r1163",
      "r1164",
      "r1165",
      "r1167",
      "r1168",
      "r1169",
      "r1170",
      "r1232",
      "r1233",
      "r1316",
      "r1319",
      "r1320",
      "r1321",
      "r1322",
      "r1323",
      "r1324",
      "r1325",
      "r1326",
      "r1327",
      "r1328",
      "r1329",
      "r1330",
      "r1331",
      "r1332",
      "r1333",
      "r1334",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340",
      "r1341",
      "r1342",
      "r1343",
      "r1344",
      "r1345",
      "r1346"
     ]
    },
    "ssti_ProfessionalSoftwareDevelopmentServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "ProfessionalSoftwareDevelopmentServicesMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Professional software development services.",
        "label": "Professional software development services member"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProfitLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProfitLoss",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income (loss)",
        "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest",
        "totalLabel": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest, Total",
        "verboseLabel": "Net loss",
        "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r110",
      "r114",
      "r128",
      "r131",
      "r148",
      "r156",
      "r158",
      "r159",
      "r161",
      "r168",
      "r177",
      "r180",
      "r181",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r351",
      "r445",
      "r470",
      "r542",
      "r543",
      "r546",
      "r547",
      "r592",
      "r622",
      "r705",
      "r707",
      "r722",
      "r767",
      "r803",
      "r823",
      "r824",
      "r971",
      "r972",
      "r1014",
      "r1127",
      "r1237"
     ]
    },
    "ssti_PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property And Equipment Purchases And Intangibles Included In Accounts Payable",
        "documentation": "Property and equipment purchases and intangibles included in accounts payable.",
        "terseLabel": "Purchases of property and equipment and intangibles included in accounts payable"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_PropertyAndEquipmentPurchasesIncludedInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "PropertyAndEquipmentPurchasesIncludedInAccountsPayable",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchases of property and equipment included in accounts payable",
        "label": "Property And Equipment Purchases Included In Accounts Payable",
        "documentation": "Property and equipment purchases included in accounts payable."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property and equipment, net",
        "label": "Property, Plant and Equipment, Net",
        "totalLabel": "Property, Plant and Equipment, Net, Total",
        "periodStartLabel": "Property, Plant and Equipment, Net, Beginning Balance",
        "periodEndLabel": "Property, Plant and Equipment, Net, Ending Balance",
        "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": [
      "r8",
      "r640",
      "r710",
      "r720",
      "r986"
     ]
    },
    "us-gaap_ProvisionForLoanLossesExpensed": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ProvisionForLoanLossesExpensed",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Financing Receivable, Credit Loss, Expense (Reversal)",
        "terseLabel": "Allowance for credit losses",
        "documentation": "Amount of credit loss expense (reversal of expense) for financing receivable."
       }
      }
     },
     "auth_ref": [
      "r140",
      "r242",
      "r702"
     ]
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PvpTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Table]",
        "terseLabel": "Pay vs Performance Disclosure"
       }
      }
     },
     "auth_ref": [
      "r1053"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "PvpTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance [Table Text Block]",
        "terseLabel": "Pay vs Performance Disclosure, Table"
       }
      }
     },
     "auth_ref": [
      "r1053"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "RangeAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statistical Measurement",
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r204",
      "r305",
      "r306",
      "r307",
      "r308",
      "r396",
      "r405",
      "r434",
      "r435",
      "r436",
      "r442",
      "r449",
      "r598",
      "r658",
      "r659",
      "r661",
      "r736",
      "r738",
      "r752",
      "r774",
      "r775",
      "r832",
      "r834",
      "r836",
      "r837",
      "r839",
      "r843",
      "r844",
      "r846",
      "r847",
      "r859",
      "r860",
      "r896",
      "r906",
      "r924",
      "r927",
      "r934",
      "r937",
      "r980",
      "r981",
      "r982",
      "r983",
      "r997",
      "r1007",
      "r1225",
      "r1239",
      "r1294",
      "r1309",
      "r1310",
      "r1311",
      "r1312",
      "r1313"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "RangeMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureOrganizationAndDescriptionOfBusinessAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statistical Measurement",
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "auth_ref": [
      "r204",
      "r305",
      "r306",
      "r307",
      "r308",
      "r396",
      "r405",
      "r434",
      "r435",
      "r436",
      "r442",
      "r449",
      "r598",
      "r658",
      "r659",
      "r661",
      "r736",
      "r738",
      "r752",
      "r774",
      "r775",
      "r832",
      "r834",
      "r836",
      "r837",
      "r839",
      "r843",
      "r844",
      "r846",
      "r847",
      "r859",
      "r860",
      "r896",
      "r906",
      "r924",
      "r927",
      "r934",
      "r937",
      "r980",
      "r981",
      "r982",
      "r983",
      "r997",
      "r1007",
      "r1225",
      "r1239",
      "r1294",
      "r1309",
      "r1310",
      "r1311",
      "r1312",
      "r1313"
     ]
    },
    "ssti_RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recent Accounting Pronouncements Not Yet Effective",
        "label": "Recent Accounting Pronouncements Not Yet Effective Policy Policy [Text Block]",
        "documentation": "Recent accounting pronouncements not yet effective."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_RecognitionFromBeginningDeferredRevenueBalanceMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "RecognitionFromBeginningDeferredRevenueBalanceMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recognition From Balance at the Beginning of the Year",
        "label": "Recognition From Beginning Deferred Revenue Balance [Member]",
        "documentation": "Recognition from beginning deferred revenue balance."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_RecognitionFromNewBillingsOfDeferredRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "RecognitionFromNewBillingsOfDeferredRevenueMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfChangesInDeferredRevenueDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Recognized During the Year from New Billings",
        "label": "Recognition From New Billings Of Deferred Revenue [Member]",
        "documentation": "Recognition from new billings of deferred revenue."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]",
        "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure"
       }
      }
     },
     "auth_ref": [
      "r1021",
      "r1031",
      "r1041",
      "r1073"
     ]
    },
    "us-gaap_RelatedPartyTransactionAmountsOfTransaction": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionAmountsOfTransaction",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related party transactions",
        "label": "Related Party Transaction, Amounts of Transaction",
        "documentation": "Amount of transactions with related party during the financial reporting period."
       }
      }
     },
     "auth_ref": [
      "r650"
     ]
    },
    "us-gaap_RelatedPartyTransactionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction",
        "label": "Related Party Transaction [Axis]",
        "documentation": "Information by type of related party transaction."
       }
      }
     },
     "auth_ref": [
      "r156",
      "r160",
      "r161",
      "r650",
      "r651",
      "r1305"
     ]
    },
    "us-gaap_RelatedPartyTransactionDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction",
        "label": "Related Party Transaction [Domain]",
        "documentation": "Transaction between related party."
       }
      }
     },
     "auth_ref": [
      "r156",
      "r160",
      "r161",
      "r1305"
     ]
    },
    "us-gaap_RelatedPartyTransactionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transaction [Line Items]",
        "label": "Related Party Transaction [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": [
      "r156",
      "r160",
      "r161",
      "r234",
      "r650",
      "r651",
      "r652",
      "r806",
      "r807",
      "r810"
     ]
    },
    "us-gaap_RelatedPartyTransactionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Related Party Transactions [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RelatedPartyTransactionsDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Related Party Transactions",
        "label": "Related Party Transactions Disclosure [Text Block]",
        "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": [
      "r647",
      "r648",
      "r649",
      "r651",
      "r653",
      "r764",
      "r765",
      "r766",
      "r808",
      "r809",
      "r810",
      "r829",
      "r831"
     ]
    },
    "us-gaap_RepaymentsOfLinesOfCredit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RepaymentsOfLinesOfCredit",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Repayments of Lines of Credit",
        "terseLabel": "Payment of line of credit costs",
        "negatedLabel": "Payment of line of credit",
        "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements."
       }
      }
     },
     "auth_ref": [
      "r63",
      "r1173",
      "r1176"
     ]
    },
    "srt_RepurchaseAgreementCounterpartyNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "RepurchaseAgreementCounterpartyNameDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Counterparty Name [Domain]"
       }
      }
     },
     "auth_ref": [
      "r156",
      "r162",
      "r163",
      "r325",
      "r364",
      "r652",
      "r660",
      "r711",
      "r869",
      "r870",
      "r871",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1285",
      "r1286",
      "r1287",
      "r1288"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and development",
        "label": "Research and Development Expense",
        "totalLabel": "Research and Development Expense, Total",
        "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity."
       }
      }
     },
     "auth_ref": [
      "r450",
      "r862",
      "r874",
      "r875",
      "r889",
      "r1314"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ResearchAndDevelopmentExpenseMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development",
        "label": "Research and Development Expense [Member]",
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "RestatementDateAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date [Axis]",
        "terseLabel": "Restatement Determination Date:"
       }
      }
     },
     "auth_ref": [
      "r1022",
      "r1032",
      "r1042",
      "r1074"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Determination Date",
        "terseLabel": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r1023",
      "r1033",
      "r1043",
      "r1075"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "RestatementDoesNotRequireRecoveryTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restatement Does Not Require Recovery [Text Block]",
        "terseLabel": "Restatement does not require Recovery"
       }
      }
     },
     "auth_ref": [
      "r1030",
      "r1040",
      "r1050",
      "r1082"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Unit",
        "label": "Restricted Stock Units (RSUs) [Member]",
        "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": [
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252",
      "r1253",
      "r1254",
      "r1255",
      "r1256",
      "r1257",
      "r1258",
      "r1259",
      "r1260",
      "r1261",
      "r1262",
      "r1263",
      "r1264",
      "r1265",
      "r1266",
      "r1267"
     ]
    },
    "us-gaap_RestructuringAndRelatedActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringAndRelatedActivitiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring and Related Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringAndRelatedActivitiesDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuring"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring and Related Activities Disclosure [Text Block]",
        "terseLabel": "Restructuring",
        "documentation": "The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled."
       }
      }
     },
     "auth_ref": [
      "r290",
      "r291",
      "r293",
      "r296",
      "r301"
     ]
    },
    "us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructured workforce percentage of eliminated headcount",
        "label": "Restructuring and Related Cost, Number of Positions Eliminated, Period Percent",
        "documentation": "The number of positions eliminated during the period as a percentage of total positions eliminated during the period in connection with the restructuring plan(s)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringCharges",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Charges",
        "totalLabel": "Restructuring Charges, Total",
        "terseLabel": "Restructuring expense",
        "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r139",
      "r141",
      "r297",
      "r298",
      "r875",
      "r1226"
     ]
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringCostAndReserveAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Type [Axis]",
        "documentation": "Information by type of restructuring cost."
       }
      }
     },
     "auth_ref": [
      "r139",
      "r141",
      "r292",
      "r293",
      "r298",
      "r299",
      "r875"
     ]
    },
    "us-gaap_RestructuringCostAndReserveLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringCostAndReserveLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Cost and Reserve [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": [
      "r292",
      "r293",
      "r294",
      "r295",
      "r298",
      "r299",
      "r300"
     ]
    },
    "us-gaap_RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Charges, Statement of Income or Comprehensive Income [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of income or comprehensive income that includes restructuring charges."
       }
      }
     },
     "auth_ref": [
      "r1104",
      "r1105"
     ]
    },
    "us-gaap_RestructuringReserveCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RestructuringReserveCurrent",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Reserve, Current",
        "terseLabel": "Restructuring liabilities",
        "documentation": "Carrying amount as of the balance sheet date of known and estimated obligations associated with exit from or disposal of business activities or restructurings pursuant to a duly authorized plan, which are expected to be paid in the next twelve months or in the normal operating cycle if longer. Costs of such activities include those for one-time termination benefits, termination of an operating lease or other contract, consolidating or closing facilities, relocating employees, and costs associated with an ongoing benefit arrangement, but excludes costs associated with the retirement of a long-lived asset."
       }
      }
     },
     "auth_ref": [
      "r1112",
      "r1227",
      "r1228"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated deficit",
        "label": "Retained Earnings (Accumulated Deficit)",
        "totalLabel": "Retained Earnings (Accumulated Deficit), Total",
        "periodStartLabel": "Retained Earnings (Accumulated Deficit), Beginning Balance",
        "periodEndLabel": "Retained Earnings (Accumulated Deficit), Ending Balance",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r47",
      "r73",
      "r718",
      "r746",
      "r751",
      "r763",
      "r785",
      "r986"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Deficit",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r102",
      "r109",
      "r110",
      "r164",
      "r165",
      "r166",
      "r169",
      "r177",
      "r179",
      "r181",
      "r237",
      "r241",
      "r281",
      "r350",
      "r445",
      "r457",
      "r458",
      "r466",
      "r467",
      "r468",
      "r471",
      "r541",
      "r542",
      "r569",
      "r572",
      "r573",
      "r576",
      "r590",
      "r635",
      "r637",
      "r742",
      "r744",
      "r768",
      "r1350"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "totalLabel": "Revenue from Contract with Customer, Excluding Assessed Tax, Total",
        "documentation": "Amount, excluding 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": [
      "r87",
      "r88",
      "r196",
      "r211",
      "r212",
      "r220",
      "r224",
      "r227",
      "r229",
      "r231",
      "r390",
      "r391",
      "r392",
      "r663",
      "r874",
      "r878"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosures"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Related Disclosures",
        "label": "Revenue from Contract with Customer [Text Block]",
        "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": [
      "r99",
      "r381",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r392",
      "r395"
     ]
    },
    "ssti_RevenueFromRelatedParty": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "RevenueFromRelatedParty",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue from related parties",
        "label": "Revenue from Related Party",
        "documentation": "Revenue from related party."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligation",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated remaining performance obligations for contractually committed revenues",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue."
       }
      }
     },
     "auth_ref": [
      "r95"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated remaining performance obligations for contractually committed revenues recognition period",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "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": [
      "r96"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date",
        "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": [
      "r96"
     ]
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenues1Details",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresScheduleOfRemainingPerformanceObligationsForContractuallyCommittedRevenuesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]",
        "terseLabel": "Revenue Remaining Performance Obligation Expected Timing Of Satisfaction [Table]",
        "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRevenueRelatedDisclosuresTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table Text Block]",
        "terseLabel": "Schedule of Remaining Performance Obligations for Contractually Committed Revenues",
        "documentation": "Tabular disclosure of expected timing for satisfying remaining performance obligation."
       }
      }
     },
     "auth_ref": [
      "r1106"
     ]
    },
    "us-gaap_Revenues": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "Revenues",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues",
        "label": "Revenues",
        "totalLabel": "Revenues, Total",
        "verboseLabel": "Revenue from related parties",
        "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss)."
       }
      }
     },
     "auth_ref": [
      "r87",
      "r88",
      "r136",
      "r156",
      "r158",
      "r159",
      "r196",
      "r211",
      "r212",
      "r220",
      "r224",
      "r227",
      "r229",
      "r231",
      "r235",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r622",
      "r705",
      "r707",
      "r889",
      "r973",
      "r1002",
      "r1003",
      "r1237"
     ]
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "RevolvingCreditFacilityMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revolving Facility",
        "label": "Revolving Credit Facility [Member]",
        "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Right-of-Use Assets Obtained In Exchange For Lease Liabilities",
        "documentation": "Right-of-use assets obtained in exchange for lease liabilities.",
        "terseLabel": "ROU Assets obtained in exchange for lease liabilities"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]",
        "terseLabel": "Rule 10b5-1 Arrangement Adopted"
       }
      }
     },
     "auth_ref": [
      "r1091"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]",
        "terseLabel": "Rule 10b5-1 Arrangement Terminated"
       }
      }
     },
     "auth_ref": [
      "r1091"
     ]
    },
    "ssti_SafepointeLLCMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "SafepointeLLCMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFairValueMeasurementsSummaryOfChangesInFairValueOfContingentConsiderationLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SafePointe, LLC",
        "label": "SafePointe L L C [Member]",
        "documentation": "Safepointe L L C."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesAndExciseTaxPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SalesAndExciseTaxPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": {
       "parentTag": "us-gaap_AccruedLiabilitiesAndOtherLiabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales/ use tax payable",
        "label": "Sales and Excise Tax Payable, Current",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred through that date and payable for statutory sales and use taxes, including value added tax. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r34"
     ]
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues",
        "label": "Revenue Benchmark [Member]",
        "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": [
      "r231",
      "r1189",
      "r1190"
     ]
    },
    "us-gaap_ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Accrued Expenses and Other Current Liabilities",
        "label": "Schedule of Accounts Payable and Accrued Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the (a) 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 (accounts payable); (b) other payables; and (c) accrued liabilities. 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). An alternative caption includes accrued expenses."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_ScheduleOfAccountsReceivableAndContractAssetTableTextblock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "ScheduleOfAccountsReceivableAndContractAssetTableTextblock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of accounts receivable and contract asset.",
        "label": "Schedule of Accounts Receivable and Contract Asset [Table TextBlock]",
        "terseLabel": "Schedule of Accounts Receivable and Contract Assets, Net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Antidilutive Security, Excluded EPS Calculation [Table]",
        "documentation": "Disclosure of information about security that could potentially dilute basic earnings per share (EPS) in future that was not included in calculation of diluted EPS."
       }
      }
     },
     "auth_ref": [
      "r192"
     ]
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]",
        "terseLabel": "Schedule of Anti-dilutive Shares Outstanding Excluded in Calculation of Diluted Net Loss 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": [
      "r22"
     ]
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination [Table]",
        "documentation": "Disclosure of information about business combination. Includes, but is not limited to, recognized asset and liability."
       }
      }
     },
     "auth_ref": [
      "r260",
      "r473",
      "r474",
      "r475",
      "r476",
      "r482",
      "r483",
      "r484",
      "r485",
      "r491",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r501",
      "r502",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r509",
      "r510",
      "r511",
      "r512",
      "r513",
      "r519",
      "r520",
      "r521",
      "r522",
      "r523",
      "r524",
      "r530",
      "r531",
      "r532",
      "r536",
      "r927",
      "r937",
      "r1272",
      "r1275",
      "r1277"
     ]
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Computation of Basic and Diluted Net Income (Loss) per Share",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "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": [
      "r1186"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Employee Service Share Based Compensation Allocation Of Recognized Period Costs [Table]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]",
        "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements."
       }
      }
     },
     "auth_ref": [
      "r32"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Stock-Based Compensation Expense for All Award Types Recorded in Consolidated Statements of Operations",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "verboseLabel": "Schedule of Stock-Based Compensation Expense Recorded in Consolidated Statements of Operations",
        "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": [
      "r32"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfFutureIntangibleAssetAmortizationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Intangible Asset, Finite-Lived [Table]",
        "documentation": "Disclosure of information about finite-lived intangible asset. Excludes indefinite-lived intangible asset."
       }
      }
     },
     "auth_ref": [
      "r265",
      "r272",
      "r275",
      "r276",
      "r278",
      "r664",
      "r862",
      "r866",
      "r940",
      "r941",
      "r942",
      "r943",
      "r944",
      "r945",
      "r946",
      "r947",
      "r948",
      "r949",
      "r950",
      "r951",
      "r952",
      "r953",
      "r954",
      "r955",
      "r956",
      "r957",
      "r958",
      "r959",
      "r960",
      "r961",
      "r962",
      "r963",
      "r964",
      "r965",
      "r966"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "terseLabel": "Schedule of 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": [
      "r866",
      "r1218"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillScheduleOfChangesInGoodwillDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill [Table]",
        "documentation": "Disclosure of information about goodwill, including, but not limited to, change from acquisition, sale, impairment, and other reason."
       }
      }
     },
     "auth_ref": [
      "r246",
      "r247",
      "r248",
      "r249",
      "r250",
      "r251",
      "r252",
      "r253",
      "r254",
      "r255",
      "r257",
      "r898"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureGoodwillTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Goodwill [Table Text Block]",
        "terseLabel": "Schedule of Changes in Goodwill",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r898",
      "r1201",
      "r1202",
      "r1203",
      "r1204",
      "r1205",
      "r1206",
      "r1207",
      "r1208",
      "r1209",
      "r1210",
      "r1211"
     ]
    },
    "us-gaap_ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Unvested Restricted Stock Units Awards Activity",
        "label": "Schedule of Nonvested Restricted Stock Units Activity [Table Text Block]",
        "documentation": "Tabular disclosure of the changes in outstanding nonvested restricted stock units."
       }
      }
     },
     "auth_ref": [
      "r75"
     ]
    },
    "us-gaap_ScheduleOfOtherAssetsNoncurrentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfOtherAssetsNoncurrentTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Other Assets, Noncurrent [Table Text Block]",
        "terseLabel": "Schedule of Other Long-term Assets",
        "documentation": "Tabular disclosure of noncurrent assets."
       }
      }
     },
     "auth_ref": [
      "r1111"
     ]
    },
    "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Assignment of Fair Value to Identified Assets and Liabilities",
        "label": "Business Combination, Recognized Asset Acquired and Liability Assumed [Table Text Block]",
        "documentation": "Tabular disclosure of asset acquired and liability assumed in business combination and recognized at acquisition date."
       }
      }
     },
     "auth_ref": [
      "r1276",
      "r1278"
     ]
    },
    "us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfRelatedPartyTransactionsByRelatedPartyTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Related Party Transactions By Related Party [Table]",
        "label": "Related Party Transaction [Table]",
        "documentation": "Disclosure of information about related party transaction."
       }
      }
     },
     "auth_ref": [
      "r156",
      "r160",
      "r161",
      "r650",
      "r651",
      "r652",
      "r806",
      "r807",
      "r810"
     ]
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfRestructuringAndRelatedCostsTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring Cost [Table]",
        "documentation": "Disclosure of information about restructuring cost. Includes, but is not limited to, expected cost, cost incurred, statement of income caption that includes restructuring cost recognized, and amount of restructuring reserve."
       }
      }
     },
     "auth_ref": [
      "r292",
      "r293",
      "r294",
      "r295",
      "r298",
      "r299",
      "r300"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule Of Share Based Compensation Arrangements By Share Based Payment Award [Table]",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r407",
      "r409",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437",
      "r442"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Stock Option Activity",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "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": [
      "r11",
      "r12",
      "r74"
     ]
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleOfStockByClassTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock, Class of Stock [Table]",
        "documentation": "Disclosure of information about stock by class. Includes, but is not limited to, common, convertible, and preferred stocks."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r25",
      "r26",
      "r27",
      "r28",
      "r29",
      "r71",
      "r72",
      "r73",
      "r122",
      "r123",
      "r124",
      "r198",
      "r362",
      "r363",
      "r364",
      "r366",
      "r369",
      "r374",
      "r376",
      "r566",
      "r759",
      "r760",
      "r761",
      "r762",
      "r906",
      "r1103",
      "r1173",
      "r1175"
     ]
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "terseLabel": "Schedule of Future Intangible Asset Amortization",
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r866",
      "r1220"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r1016"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r1018"
     ]
    },
    "srt_SegmentGeographicalDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "SegmentGeographicalDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical",
        "label": "Geographical [Domain]"
       }
      }
     },
     "auth_ref": [
      "r201",
      "r229",
      "r230",
      "r666",
      "r667",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r699",
      "r705",
      "r706",
      "r707",
      "r708",
      "r771",
      "r772",
      "r773",
      "r833",
      "r835",
      "r838",
      "r840",
      "r843",
      "r845",
      "r846",
      "r847",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r865",
      "r880",
      "r909",
      "r911",
      "r987",
      "r988",
      "r989",
      "r990",
      "r991",
      "r992",
      "r993",
      "r994",
      "r999",
      "r1007",
      "r1316",
      "r1319",
      "r1320",
      "r1322",
      "r1323",
      "r1324",
      "r1325",
      "r1326",
      "r1327",
      "r1328",
      "r1329",
      "r1330",
      "r1331",
      "r1332",
      "r1333",
      "r1334",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340",
      "r1341",
      "r1342",
      "r1343",
      "r1344",
      "r1345",
      "r1346"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingCodmIndividualTitleAndPositionOrGroupOrCommitteeNameExtensibleEnumeration",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReportingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting, CODM, Individual Title and Position or Group Name [Extensible Enumeration]",
        "documentation": "Indicates title and position of individual or name of group identified as chief operating decision maker (CODM) for segment reporting."
       }
      }
     },
     "auth_ref": [
      "r209",
      "r888",
      "r895"
     ]
    },
    "us-gaap_SegmentReportingCodmProfitLossMeasureHowUsedDescription": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingCodmProfitLossMeasureHowUsedDescription",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReportingAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting, CODM, Profit (Loss) Measure, How Used, Description",
        "documentation": "Description of how chief operating decision maker (CODM) uses reported segment profit (loss) measure to assess performance and allocate resource."
       }
      }
     },
     "auth_ref": [
      "r219",
      "r885",
      "r892"
     ]
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureSegmentReporting"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting",
        "label": "Segment Reporting Disclosure [Text Block]",
        "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": [
      "r90",
      "r196",
      "r205",
      "r206",
      "r207",
      "r208",
      "r210",
      "r216",
      "r217",
      "r218",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r228",
      "r231",
      "r884",
      "r886",
      "r887",
      "r889",
      "r891",
      "r893",
      "r894"
     ]
    },
    "us-gaap_SellingAndMarketingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SellingAndMarketingExpense",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited": {
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0,
       "order": 0.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales and marketing",
        "label": "Selling and Marketing Expense",
        "totalLabel": "Selling and Marketing Expense, Total",
        "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingAndMarketingExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SellingAndMarketingExpenseMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockBasedCompensationExpenseRecordedInCondensedConsolidatedStatementsOfOperationsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Selling and Marketing Expense [Member]",
        "terseLabel": "Sales and Marketing",
        "documentation": "Primary financial statement caption encompassing selling and marketing expense."
       }
      }
     },
     "auth_ref": [
      "r58"
     ]
    },
    "ssti_Share-BasedPaymentArrangementExpenseAfterTargetAchievement": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "Share-BasedPaymentArrangementExpenseAfterTargetAchievement",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Expense After Target Achievement",
        "documentation": "Share-based payment arrangement, expense after target achievement.",
        "terseLabel": "Expense related to achievement of the minimum target"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensation",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "totalLabel": "Share-based Payment Arrangement, Noncash Expense, Total",
        "documentation": "Amount of noncash expense for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    },
    "us-gaap_ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationAllocationAndClassificationInFinancialStatementsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Recognized Amount [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Number of RSUs, Forfeited",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "verboseLabel": "Cancelled restricted stock units",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r427"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Grant Date Fair Value per RSU, Forfeited",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, 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": [
      "r427"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of RSUs, Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "verboseLabel": "Number of Restricted Stock Units, 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": [
      "r425"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Grant Date Fair Value, Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "verboseLabel": "Weighted Average Grant Date Fair Value per RSU, Granted",
        "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": [
      "r425"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Number of RSUs, Ending Balance",
        "periodStartLabel": "Number of RSUs, Beginning Balance",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "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": [
      "r422",
      "r423"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "periodEndLabel": "Weighted Average Grant Date Fair Value per RSU, Ending Balance",
        "periodStartLabel": "Weighted Average Grant Date Fair Value per RSU, Beginning Balance",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r422",
      "r423"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Number of RSUs, Vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "terseLabel": "Number of Restricted Stock Units, Vested",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r426"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Fair Value of RSUs' Vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value",
        "verboseLabel": "Vested fair value amount",
        "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash."
       }
      }
     },
     "auth_ref": [
      "r429"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "verboseLabel": "Weighted Average Grant Date Fair Value per RSU, Vested",
        "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": [
      "r426"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "terseLabel": "Share Based Compensation Arrangement By Share Based Payment Award [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": [
      "r407",
      "r409",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437",
      "r442"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Maximum Employee Subscription Rate",
        "terseLabel": "Percentage of payroll deductions",
        "documentation": "The highest percentage of annual salary that an employee is permitted to utilize with respect to the plan."
       }
      }
     },
     "auth_ref": [
      "r31"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of shares available for future grant",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for 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": [
      "r31"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "terseLabel": "Number of 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": [
      "r416"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "terseLabel": "Weighted- average exercise price per share, exercisable",
        "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": [
      "r416"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period, Intrinsic Value",
        "terseLabel": "Aggregate Intrinsic Value Exercised",
        "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": [
      "r429"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Number of Options Outstanding, Canceled",
        "verboseLabel": "Number of common stock shares canceled",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period",
        "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": [
      "r420"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of Options Outstanding, Granted",
        "verboseLabel": "RSU Awards granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Gross",
        "documentation": "Gross number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r418"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Weighted Average Grant Date Fair Value per Option, Granted",
        "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": [
      "r428"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodEndLabel": "Number of Options Outstanding, Ending Balance",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "periodStartLabel": "Number of Options Outstanding, Beginning Balance",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r414",
      "r415"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Weighted Average Exercise Price, Beginning Balance",
        "periodEndLabel": "Weighted Average Exercise Price, Ending Balance",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r414",
      "r415"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "terseLabel": "Aggregate intrinsic value, vested and expected to vest",
        "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": [
      "r430"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number",
        "terseLabel": "Number of 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": [
      "r430"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted- average exercise price per share, vested and expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, 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": [
      "r430"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Percentage of Outstanding Stock Maximum",
        "terseLabel": "Percentage of number of shares of common stock outstanding",
        "documentation": "Maximum number of shares that may be issued in accordance with the plan as a proportion of outstanding capital stock."
       }
      }
     },
     "auth_ref": [
      "r1269"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardPlanModificationIncrementalCompensationCost",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement, Plan Modification, Incremental Cost",
        "terseLabel": "Recognized net incremental compensation expense",
        "documentation": "An excess of the fair value of the modified award over the fair value of the award immediately before the modification."
       }
      }
     },
     "auth_ref": [
      "r441"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Terms of Award",
        "terseLabel": "Employee stock purchase plan, description",
        "documentation": "Description of terms of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r410"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureEquityIncentivePlansScheduleOfUnvestedRestrictedStockUnitsAwardsActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "All Award Types",
        "terseLabel": "All Award Types",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r418",
      "r419",
      "r420",
      "r421",
      "r422",
      "r423",
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r433",
      "r434",
      "r435",
      "r436",
      "r437"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price, Exercised",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r419"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price, Canceled",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated."
       }
      }
     },
     "auth_ref": [
      "r420"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Exercise Price, Granted",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r418"
     ]
    },
    "srt_ShareRepurchaseProgramAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ShareRepurchaseProgramAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share Repurchase Program [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1240"
     ]
    },
    "srt_ShareRepurchaseProgramDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "ShareRepurchaseProgramDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share Repurchase Program [Domain]"
       }
      }
     },
     "auth_ref": [
      "r1240"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardAcceleratedVestingNumber",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accelerated vesting",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Accelerated Vesting, Number",
        "documentation": "Number of shares for which recognition of cost was accelerated for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1269"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting terms percentage",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Rights, Percentage",
        "documentation": "Percentage of vesting of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1242"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted- average remaining contractual term (in years), vested and expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, 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": [
      "r430"
     ]
    },
    "ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares of common stock reserved for issuance, automatic annual increase end date",
        "label": "Shares Of Common Stock Reserved For Issuance Automatic Annual Increase End Date",
        "documentation": "Shares of common stock reserved for issuance, automatic annual increase end date."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares of common stock reserved for issuance, automatic annual increase initiation period",
        "label": "Shares Of Common Stock Reserved For Issuance Automatic Annual Increase Initiation Period",
        "documentation": "Shares of common stock reserved for issuance automatic annual increase initiation period."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Shares of common stock reserved for issuance automatic annual increase start date.",
        "label": "Shares Of Common Stock Reserved For Issuance Automatic Annual Increase Start Date",
        "terseLabel": "Shares of common stock reserved for issuance, automatic annual increase start date"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SharesOutstanding",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance, Shares",
        "periodEndLabel": "Ending balance, Shares",
        "label": "Shares, Outstanding",
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_ShortTermDeposits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "ShortTermDeposits",
     "crdr": "debit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails": {
       "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccountsScheduleOfPrepaidExpensesAndOtherCurrentAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Short-term deposits.",
        "label": "Short Term Deposits",
        "terseLabel": "Short-term deposits"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Significant Accounting Policies",
        "label": "Significant Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r154",
      "r155"
     ]
    },
    "ssti_SoundthinkingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "SoundthinkingMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRelatedPartyTransactionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SoundThinking",
        "label": "SoundThinking [Member]",
        "documentation": "SoundThinking."
       }
      }
     },
     "auth_ref": []
    },
    "srt_SouthAmericaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "SouthAmericaMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "South America [Member]",
        "terseLabel": "South America"
       }
      }
     },
     "auth_ref": [
      "r1352",
      "r1353",
      "r1354",
      "r1355"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components [Axis]",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r45",
      "r48",
      "r49",
      "r102",
      "r109",
      "r110",
      "r133",
      "r134",
      "r135",
      "r164",
      "r165",
      "r166",
      "r169",
      "r177",
      "r179",
      "r181",
      "r197",
      "r237",
      "r241",
      "r281",
      "r350",
      "r377",
      "r445",
      "r457",
      "r458",
      "r466",
      "r467",
      "r468",
      "r471",
      "r541",
      "r542",
      "r569",
      "r571",
      "r572",
      "r573",
      "r574",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r590",
      "r626",
      "r627",
      "r628",
      "r629",
      "r630",
      "r631",
      "r635",
      "r637",
      "r646",
      "r724",
      "r742",
      "r743",
      "r744",
      "r768",
      "r825"
     ]
    },
    "srt_StatementGeographicalAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2025",
     "localname": "StatementGeographicalAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical",
        "label": "Geographical [Axis]"
       }
      }
     },
     "auth_ref": [
      "r201",
      "r229",
      "r230",
      "r666",
      "r667",
      "r668",
      "r669",
      "r670",
      "r671",
      "r672",
      "r673",
      "r674",
      "r675",
      "r676",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r699",
      "r705",
      "r706",
      "r707",
      "r708",
      "r771",
      "r772",
      "r773",
      "r833",
      "r835",
      "r838",
      "r840",
      "r843",
      "r845",
      "r846",
      "r847",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r857",
      "r858",
      "r865",
      "r880",
      "r909",
      "r911",
      "r987",
      "r988",
      "r989",
      "r990",
      "r991",
      "r992",
      "r993",
      "r994",
      "r999",
      "r1007",
      "r1316",
      "r1319",
      "r1320",
      "r1322",
      "r1323",
      "r1324",
      "r1325",
      "r1326",
      "r1327",
      "r1328",
      "r1329",
      "r1330",
      "r1331",
      "r1332",
      "r1333",
      "r1334",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340",
      "r1341",
      "r1342",
      "r1343",
      "r1344",
      "r1345",
      "r1346"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementLineItems",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Line Items]",
        "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": [
      "r164",
      "r165",
      "r166",
      "r197",
      "r352",
      "r353",
      "r355",
      "r357",
      "r637",
      "r663",
      "r758",
      "r769",
      "r770",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r784",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795",
      "r797",
      "r798",
      "r799",
      "r800",
      "r801",
      "r804",
      "r805",
      "r811",
      "r812",
      "r813",
      "r814",
      "r815",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820",
      "r821",
      "r822",
      "r825",
      "r876",
      "r878",
      "r1008",
      "r1348"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StatementTable",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "label": "Statement [Table]",
        "documentation": "Presentation of information about comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r164",
      "r165",
      "r166",
      "r197",
      "r234",
      "r352",
      "r353",
      "r355",
      "r357",
      "r637",
      "r663",
      "r758",
      "r769",
      "r770",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780",
      "r781",
      "r784",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795",
      "r797",
      "r798",
      "r799",
      "r800",
      "r801",
      "r804",
      "r805",
      "r811",
      "r812",
      "r813",
      "r814",
      "r815",
      "r816",
      "r817",
      "r818",
      "r819",
      "r820",
      "r821",
      "r822",
      "r825",
      "r876",
      "r878",
      "r1008",
      "r1348"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "StkPrcOrTsrEstimationMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Price or TSR Estimation Method [Text Block]",
        "terseLabel": "Stock Price or TSR Estimation Method"
       }
      }
     },
     "auth_ref": [
      "r1025",
      "r1035",
      "r1045",
      "r1077"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockAppreciationRightsSARSMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period."
       }
      }
     },
     "auth_ref": [
      "r1242",
      "r1243",
      "r1244",
      "r1245",
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250",
      "r1251",
      "r1252",
      "r1253",
      "r1254",
      "r1255",
      "r1256",
      "r1257",
      "r1258",
      "r1259",
      "r1260",
      "r1261",
      "r1262",
      "r1263",
      "r1264",
      "r1265",
      "r1266",
      "r1267"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesAcquisitions": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesAcquisitions",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock from acquisitions, Shares",
        "label": "Stock Issued During Period, Shares, Acquisitions",
        "verboseLabel": "Issuance of common stock for acquisition, Shares",
        "documentation": "Number of shares of stock issued during the period pursuant to acquisitions."
       }
      }
     },
     "auth_ref": [
      "r44",
      "r45",
      "r73"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Shares issued under ESPP",
        "terseLabel": "Issuance of common stock from ESPP purchase, Shares",
        "label": "Stock Issued During Period, Shares, Employee Stock Purchase Plans",
        "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r44",
      "r45",
      "r73"
     ]
    },
    "ssti_StockIssuedDuringPeriodSharesRestrictedStockAwardVesting": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardVesting",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock from RSUs vested, Shares",
        "label": "Stock Issued During Period Shares Restricted Stock Award Vesting",
        "documentation": "Stock issued during period shares restricted stock award vesting."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansScheduleOfStockOptionActivityDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Number of Options Outstanding, Exercised",
        "terseLabel": "Exercise of stock options, Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r44",
      "r45",
      "r73",
      "r419"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueAcquisitions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueAcquisitions",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock from acquisitions",
        "label": "Stock Issued During Period, Value, Acquisitions",
        "documentation": "Value of stock issued pursuant to acquisitions during the period."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r45",
      "r48",
      "r49",
      "r73"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Issued During Period, Value, Employee Stock Purchase Plan",
        "terseLabel": "Issuance of common stock from ESPP purchases",
        "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r44",
      "r45",
      "r73"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise of stock options",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r45",
      "r48",
      "r49",
      "r73"
     ]
    },
    "ssti_StockRepurchaseProgramMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "StockRepurchaseProgramMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stock Repurchase Program [Member]",
        "documentation": "Stock Repurchase Program.",
        "terseLabel": "Stock Repurchase Program"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of common stock, Shares",
        "terseLabel": "Repurchase of common stock",
        "label": "Stock Repurchased During Period, Shares",
        "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",
      "r44",
      "r45",
      "r73",
      "r762",
      "r825",
      "r841"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of common stock",
        "terseLabel": "Repurchase of common stock amount",
        "label": "Stock Repurchased During Period, Value",
        "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",
      "r44",
      "r45",
      "r73",
      "r768",
      "r825",
      "r841",
      "r1014"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfStockholdersEquityUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "Ending balance",
        "label": "Equity, Attributable to Parent",
        "totalLabel": "Total stockholders' equity",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r45",
      "r48",
      "r49",
      "r67",
      "r786",
      "r802",
      "r826",
      "r827",
      "r986",
      "r1015",
      "r1173",
      "r1177",
      "r1178",
      "r1199",
      "r1301",
      "r1350"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedBalanceSheetsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stockholders' equity",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgram"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity [Text Block]",
        "terseLabel": "Capital Stock",
        "verboseLabel": "Stock Repurchase Program",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r70",
      "r361",
      "r363",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r375",
      "r377",
      "r566",
      "r581",
      "r828",
      "r830",
      "r842"
     ]
    },
    "ssti_SubscriptionMaintenanceAndSupportServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "SubscriptionMaintenanceAndSupportServicesMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Subscription, maintenance, and support services.",
        "label": "Subscription, maintenance and support services Member"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Subsequent Event",
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r632",
      "r654"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Axis]",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r632",
      "r654"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Event Type [Domain]",
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r632",
      "r654"
     ]
    },
    "us-gaap_SupplementalBalanceSheetDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SupplementalBalanceSheetDisclosuresTextBlock",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureDetailsOfCertainCondensedConsolidatedBalanceSheetAccounts"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Details of Certain Condensed Consolidated Balance Sheet Accounts",
        "label": "Supplemental Balance Sheet Disclosures [Text Block]",
        "documentation": "The entire disclosure for supplemental balance sheet disclosures, including descriptions and amounts for assets, liabilities, and equity."
       }
      }
     },
     "auth_ref": [
      "r1110"
     ]
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "SupplementalCashFlowInformationAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information [Abstract]",
        "terseLabel": "Supplemental cash flow disclosures:"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TabularListTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Tabular List [Table Text Block]",
        "terseLabel": "Tabular List, Table"
       }
      }
     },
     "auth_ref": [
      "r1071"
     ]
    },
    "ssti_TechnologicSolutionsLlcMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "TechnologicSolutionsLlcMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureFairValueMeasurementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Technologic",
        "documentation": "Technologic solutions LLC",
        "label": "Technologic Solutions LLC [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TechnologyBasedIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TechnologyBasedIntangibleAssetsMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Software technology",
        "label": "Technology-Based Intangible Assets [Member]",
        "documentation": "Technology-based intangible assets, including, but not limited to, patented technology, unpatented technology, and developed technology rights."
       }
      }
     },
     "auth_ref": [
      "r961",
      "r1212",
      "r1213",
      "r1214",
      "r1215",
      "r1217",
      "r1219",
      "r1222",
      "r1223"
     ]
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Shareholder Return Amount",
        "terseLabel": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r1063"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TotalShareholderRtnVsPeerGroupTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Total Shareholder Return Vs Peer Group [Text Block]",
        "terseLabel": "Total Shareholder Return Vs Peer Group"
       }
      }
     },
     "auth_ref": [
      "r1070"
     ]
    },
    "us-gaap_TradeNamesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TradeNamesMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsSummaryOfAssignmentOfFairValueToIdentifiedAssetsAndLiabilitiesDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureIntangibleAssetsNetScheduleOfIntangibleAssetsNetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trade Names [Member]",
        "terseLabel": "Tradename",
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof."
       }
      }
     },
     "auth_ref": [
      "r941",
      "r1212",
      "r1213",
      "r1214",
      "r1215",
      "r1216",
      "r1217",
      "r1219",
      "r1221",
      "r1222",
      "r1223"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement [Axis]",
        "terseLabel": "Trading Arrangement:"
       }
      }
     },
     "auth_ref": [
      "r1090"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TradingArrByIndTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangements, by Individual [Table]",
        "terseLabel": "Trading Arrangements, by Individual"
       }
      }
     },
     "auth_ref": [
      "r1092"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2025",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Adoption Date",
        "terseLabel": "Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r1093"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Duration",
        "terseLabel": "Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r1094"
     ]
    },
    "ecd_TrdArrExpirationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrExpirationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Expiration Date",
        "terseLabel": "Expiration Date"
       }
      }
     },
     "auth_ref": [
      "r1094"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Name",
        "terseLabel": "Name"
       }
      }
     },
     "auth_ref": [
      "r1092"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Individual Title",
        "terseLabel": "Title"
       }
      }
     },
     "auth_ref": [
      "r1092"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrSecuritiesAggAvailAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement, Securities Aggregate Available Amount",
        "terseLabel": "Aggregate Available"
       }
      }
     },
     "auth_ref": [
      "r1095"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Arrangement Termination Date",
        "terseLabel": "Termination Date"
       }
      }
     },
     "auth_ref": [
      "r1093"
     ]
    },
    "us-gaap_TreasuryStockAcquiredAverageCostPerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TreasuryStockAcquiredAverageCostPerShare",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureStockRepurchaseProgramAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares Acquired, Average Cost Per Share",
        "terseLabel": "Average price per share",
        "documentation": "Total cost of shares repurchased divided by the total number of shares repurchased."
       }
      }
     },
     "auth_ref": [
      "r30"
     ]
    },
    "ssti_TwoThousandAndSeventeenEmployeeStockPurchasePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "TwoThousandAndSeventeenEmployeeStockPurchasePlanMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2017 Employee Stock Purchase Plan",
        "label": "Two Thousand And Seventeen Employee Stock Purchase Plan [Member]",
        "documentation": "Two thousand and seventeen employee stock purchase plan."
       }
      }
     },
     "auth_ref": []
    },
    "ssti_TwoThousandSeventeenEquityIncentivePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "TwoThousandSeventeenEquityIncentivePlanMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureEquityIncentivePlansAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2017 Equity Incentive Plan",
        "label": "Two Thousand Seventeen Equity Incentive Plan [Member]",
        "documentation": "2017 Equity Incentive Plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TypeOfAdoptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TypeOfAdoptionMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Standards Update [Domain]",
        "documentation": "Amendment to accounting standards."
       }
      }
     },
     "auth_ref": [
      "r100",
      "r101",
      "r102",
      "r103",
      "r104",
      "r105",
      "r106",
      "r107",
      "r108",
      "r109",
      "r110",
      "r144",
      "r145",
      "r146",
      "r168",
      "r169",
      "r170",
      "r171",
      "r172",
      "r183",
      "r232",
      "r233",
      "r237",
      "r239",
      "r240",
      "r241",
      "r280",
      "r281",
      "r289",
      "r348",
      "r349",
      "r350",
      "r351",
      "r443",
      "r444",
      "r445",
      "r446",
      "r457",
      "r458",
      "r459",
      "r460",
      "r461",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r515",
      "r516",
      "r517",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r582",
      "r583",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588",
      "r589",
      "r590",
      "r591",
      "r592",
      "r616",
      "r617",
      "r635",
      "r636",
      "r641",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r751"
     ]
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "TypeOfRestructuringDomain",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureRestructuringAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Type of Restructuring [Domain]",
        "documentation": "Identification of the types of restructuring costs."
       }
      }
     },
     "auth_ref": [
      "r139",
      "r141",
      "r292",
      "r293",
      "r298",
      "r299",
      "r875"
     ]
    },
    "country_US": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2025",
     "localname": "US",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "United States",
        "label": "UNITED STATES"
       }
      }
     },
     "auth_ref": []
    },
    "country_UY": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2025",
     "localname": "UY",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Uruguay",
        "label": "URUGUAY"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_UmpquaCreditAgreementMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "UmpquaCreditAgreementMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureAcquisitionsAdditionalInformationDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureFinancingArrangementsAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Umpqua credit agreement.",
        "label": "Umpqua Credit Agreement [Member]",
        "terseLabel": "Umpqua Credit Agreement"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "UndrlygSecurityMktPriceChngPct",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Underlying Security Market Price Change, Percent",
        "terseLabel": "Underlying Security Market Price Change"
       }
      }
     },
     "auth_ref": [
      "r1089"
     ]
    },
    "ssti_UnvestedPerformanceStockUnitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "UnvestedPerformanceStockUnitsMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Unvested Performance Stock Units [Member]",
        "documentation": "Unvested performance stock units.",
        "terseLabel": "Unvested Performance Stock Units"
       }
      }
     },
     "auth_ref": []
    },
    "ssti_UnvestedRestrictedStockUnitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://www.soundthinking.com/20250630",
     "localname": "UnvestedRestrictedStockUnitsMember",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareScheduleOfAntidilutiveSharesOutstandingExcludedInCalculationOfDilutedNetIncomeLossPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unvested Restricted Stock Units",
        "label": "Unvested Restricted Stock Units [Member]",
        "documentation": "Unvested restricted stock units."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Use of Estimates",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "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": [
      "r93",
      "r94",
      "r199",
      "r202",
      "r203",
      "r204",
      "r705",
      "r707",
      "r881"
     ]
    },
    "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]",
        "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year"
       }
      }
     },
     "auth_ref": [
      "r1059"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Weighted-average shares outstanding, diluted",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "terseLabel": "Weighted-average shares used in computing net loss per share, 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": [
      "r186",
      "r191"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails",
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_StatementCondensedConsolidatedStatementsOfOperationsUnaudited"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Weighted-average shares outstanding, basic",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "totalLabel": "Weighted Average Number of Shares Outstanding, Basic, Total",
        "terseLabel": "Weighted-average shares used in computing net loss per share, 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": [
      "r185",
      "r191"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2025",
     "localname": "WeightedAverageNumberOfSharesOutstandingDilutedDisclosureItemsAbstract",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/DisclosureNetIncomeLossPerShareSummaryOfComputationOfBasicAndDilutedNetIncomeLossPerShareDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Denominator:",
        "label": "Weighted Average Number of Shares Outstanding Reconciliation [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2025",
     "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]",
        "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested"
       }
      }
     },
     "auth_ref": [
      "r1057"
     ]
    },
    "country_ZA": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2025",
     "localname": "ZA",
     "presentation": [
      "http://www.soundthinking.com/20250630/taxonomy/role/Role_DisclosureRevenueRelatedDisclosuresAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "South Africa",
        "label": "SOUTH AFRICA"
       }
      }
     },
     "auth_ref": []
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "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/2147477401/830-230-45-1"
  },
  "r1": {
   "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"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(a)",
   "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": "15",
   "Subparagraph": "(f)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r5": {
   "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"
  },
  "r6": {
   "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"
  },
  "r7": {
   "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"
  },
  "r8": {
   "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"
  },
  "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": "(d)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r12": {
   "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"
  },
  "r13": {
   "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"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r15": {
   "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"
  },
  "r16": {
   "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"
  },
  "r17": {
   "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"
  },
  "r18": {
   "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"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r20": {
   "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"
  },
  "r21": {
   "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"
  },
  "r22": {
   "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"
  },
  "r23": {
   "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"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481142/505-10-45-2"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-10"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-3"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-4"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-5"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-8"
  },
  "r30": {
   "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"
  },
  "r31": {
   "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"
  },
  "r32": {
   "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"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "942",
   "SubTopic": "470",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477734/942-470-50-3"
  },
  "r34": {
   "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(19)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r35": {
   "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(19)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r36": {
   "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(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r37": {
   "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(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r38": {
   "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(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r39": {
   "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(22)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r40": {
   "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(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r41": {
   "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"
  },
  "r42": {
   "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(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r43": {
   "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(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r44": {
   "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"
  },
  "r45": {
   "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"
  },
  "r46": {
   "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"
  },
  "r47": {
   "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"
  },
  "r48": {
   "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"
  },
  "r49": {
   "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"
  },
  "r50": {
   "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"
  },
  "r51": {
   "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"
  },
  "r52": {
   "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"
  },
  "r53": {
   "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"
  },
  "r54": {
   "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)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r55": {
   "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)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r56": {
   "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"
  },
  "r57": {
   "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"
  },
  "r58": {
   "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"
  },
  "r59": {
   "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))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r60": {
   "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(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r61": {
   "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"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r64": {
   "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"
  },
  "r65": {
   "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"
  },
  "r66": {
   "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"
  },
  "r67": {
   "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"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/440/tableOfContent"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "470",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/470/tableOfContent"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505/tableOfContent"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-6"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-7"
  },
  "r73": {
   "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"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/810/tableOfContent"
  },
  "r77": {
   "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"
  },
  "r78": {
   "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(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r79": {
   "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/2147478546/942-210-S99-1"
  },
  "r80": {
   "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(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r81": {
   "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/2147478546/942-210-S99-1"
  },
  "r82": {
   "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(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r83": {
   "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(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r84": {
   "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/2147478546/942-210-S99-1"
  },
  "r85": {
   "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/2147478524/942-220-S99-1"
  },
  "r86": {
   "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/2147478524/942-220-S99-1"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "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"
  },
  "r91": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r92": {
   "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"
  },
  "r93": {
   "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"
  },
  "r94": {
   "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"
  },
  "r95": {
   "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"
  },
  "r96": {
   "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"
  },
  "r97": {
   "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"
  },
  "r98": {
   "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"
  },
  "r99": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r100": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r101": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r102": {
   "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"
  },
  "r103": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r104": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r105": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-7"
  },
  "r106": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r107": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r108": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r109": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r110": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r111": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/205/tableOfContent"
  },
  "r112": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481034/205-10-S45-5"
  },
  "r113": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480922/205-10-S99-3"
  },
  "r114": {
   "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"
  },
  "r115": {
   "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"
  },
  "r116": {
   "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"
  },
  "r117": {
   "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"
  },
  "r118": {
   "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"
  },
  "r119": {
   "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"
  },
  "r120": {
   "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"
  },
  "r121": {
   "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"
  },
  "r122": {
   "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(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r123": {
   "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(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r124": {
   "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(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r125": {
   "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"
  },
  "r126": {
   "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(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r127": {
   "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"
  },
  "r128": {
   "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"
  },
  "r129": {
   "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"
  },
  "r130": {
   "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"
  },
  "r131": {
   "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"
  },
  "r132": {
   "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"
  },
  "r133": {
   "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"
  },
  "r134": {
   "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"
  },
  "r135": {
   "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"
  },
  "r136": {
   "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(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r137": {
   "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"
  },
  "r138": {
   "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"
  },
  "r139": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r140": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r141": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r142": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r143": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r144": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476151/220-40-65-1"
  },
  "r145": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476151/220-40-65-1"
  },
  "r146": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476151/220-40-65-1"
  },
  "r147": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-17"
  },
  "r148": {
   "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"
  },
  "r149": {
   "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"
  },
  "r150": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r151": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r152": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A"
  },
  "r153": {
   "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"
  },
  "r154": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r155": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-1"
  },
  "r156": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r157": {
   "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(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r158": {
   "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)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r159": {
   "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"
  },
  "r160": {
   "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(k)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r161": {
   "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(k)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r162": {
   "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(m)(1)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r163": {
   "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(m)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r164": {
   "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"
  },
  "r165": {
   "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"
  },
  "r166": {
   "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"
  },
  "r167": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r168": {
   "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"
  },
  "r169": {
   "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"
  },
  "r170": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r171": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r172": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r173": {
   "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"
  },
  "r174": {
   "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"
  },
  "r175": {
   "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"
  },
  "r176": {
   "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"
  },
  "r177": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r180": {
   "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"
  },
  "r181": {
   "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"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-3"
  },
  "r183": {
   "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"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "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"
  },
  "r189": {
   "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"
  },
  "r190": {
   "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"
  },
  "r191": {
   "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"
  },
  "r192": {
   "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"
  },
  "r193": {
   "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"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r197": {
   "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"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482987/272-10-50-1"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-6"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9"
  },
  "r205": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r206": {
   "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"
  },
  "r207": {
   "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"
  },
  "r208": {
   "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"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r210": {
   "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"
  },
  "r211": {
   "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"
  },
  "r212": {
   "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"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r214": {
   "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"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-24"
  },
  "r216": {
   "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"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-29"
  },
  "r220": {
   "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"
  },
  "r221": {
   "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"
  },
  "r222": {
   "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"
  },
  "r223": {
   "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"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r225": {
   "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"
  },
  "r226": {
   "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"
  },
  "r227": {
   "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"
  },
  "r228": {
   "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"
  },
  "r229": {
   "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"
  },
  "r230": {
   "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"
  },
  "r231": {
   "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"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476173/280-10-65-1"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476173/280-10-65-1"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13"
  },
  "r235": {
   "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"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-1"
  },
  "r237": {
   "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"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r241": {
   "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"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-20/tableOfContent"
  },
  "r245": {
   "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"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r251": {
   "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"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2"
  },
  "r257": {
   "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"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-3A"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-4"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-4"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-5"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-6"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-6"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r271": {
   "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"
  },
  "r272": {
   "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"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-4"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r282": {
   "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"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477123/405-50-65-1"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/420/tableOfContent"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r294": {
   "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"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-1"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r302": {
   "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"
  },
  "r303": {
   "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"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-1"
  },
  "r305": {
   "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"
  },
  "r306": {
   "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"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-3"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "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"
  },
  "r316": {
   "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"
  },
  "r317": {
   "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"
  },
  "r318": {
   "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"
  },
  "r319": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1C"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r335": {
   "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"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1E",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1E"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1F",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1F"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481538/470-20-65-4"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-1"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-2"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479887/480-10-S45-3"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-1"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479857/480-10-S50-3"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(01)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3A",
   "Subparagraph": "(24)(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-3A"
  },
  "r361": {
   "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"
  },
  "r362": {
   "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"
  },
  "r363": {
   "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"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r365": {
   "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"
  },
  "r366": {
   "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"
  },
  "r367": {
   "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"
  },
  "r368": {
   "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"
  },
  "r369": {
   "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"
  },
  "r370": {
   "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"
  },
  "r371": {
   "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"
  },
  "r372": {
   "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"
  },
  "r373": {
   "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"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r375": {
   "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"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r377": {
   "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"
  },
  "r378": {
   "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"
  },
  "r379": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "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"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-11"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "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"
  },
  "r386": {
   "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"
  },
  "r387": {
   "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"
  },
  "r388": {
   "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"
  },
  "r389": {
   "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"
  },
  "r390": {
   "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"
  },
  "r391": {
   "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"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-7"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "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"
  },
  "r398": {
   "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"
  },
  "r399": {
   "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"
  },
  "r400": {
   "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"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5"
  },
  "r405": {
   "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"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-1D"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-3"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r411": {
   "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"
  },
  "r412": {
   "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"
  },
  "r413": {
   "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"
  },
  "r414": {
   "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"
  },
  "r415": {
   "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"
  },
  "r416": {
   "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"
  },
  "r417": {
   "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"
  },
  "r418": {
   "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"
  },
  "r419": {
   "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"
  },
  "r420": {
   "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"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "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"
  },
  "r424": {
   "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"
  },
  "r425": {
   "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"
  },
  "r426": {
   "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"
  },
  "r427": {
   "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"
  },
  "r428": {
   "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"
  },
  "r429": {
   "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"
  },
  "r430": {
   "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"
  },
  "r431": {
   "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"
  },
  "r432": {
   "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"
  },
  "r433": {
   "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"
  },
  "r434": {
   "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"
  },
  "r435": {
   "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"
  },
  "r436": {
   "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"
  },
  "r437": {
   "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"
  },
  "r438": {
   "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"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "17",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "17",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "17",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "17",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480336/718-10-65-17"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479983/718-10-S45-1"
  },
  "r448": {
   "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"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1"
  },
  "r450": {
   "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"
  },
  "r451": {
   "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"
  },
  "r452": {
   "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"
  },
  "r453": {
   "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"
  },
  "r454": {
   "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"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-9"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-9"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-9"
  },
  "r462": {
   "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"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/805-10/tableOfContent"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-4"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-5"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-7"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/805-20/tableOfContent"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-2"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-3"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-4A"
  },
  "r513": {
   "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"
  },
  "r514": {
   "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"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479845/805-20-65-3"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479845/805-20-65-3"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479845/805-20-65-3"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/805-30/tableOfContent"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r521": {
   "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"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-3"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479326/805-40-45-1"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r543": {
   "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"
  },
  "r544": {
   "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"
  },
  "r545": {
   "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"
  },
  "r546": {
   "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"
  },
  "r547": {
   "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"
  },
  "r548": {
   "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"
  },
  "r549": {
   "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"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4EE",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4EE"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4EE",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4EE"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4EE",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4EE"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4EE",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4EE"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4EEE",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4EEE"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4EEE",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4EEE"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4EEE",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4EEE"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4F",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4F"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-8A"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r569": {
   "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"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r571": {
   "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"
  },
  "r572": {
   "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"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r576": {
   "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"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r581": {
   "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"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r586": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r590": {
   "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"
  },
  "r591": {
   "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"
  },
  "r592": {
   "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"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r595": {
   "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"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2G",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2G"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482477/820-10-65-13"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482477/820-10-65-13"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-10"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r622": {
   "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"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-30"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-32"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482804/825-20-50-1"
  },
  "r626": {
   "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"
  },
  "r627": {
   "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"
  },
  "r628": {
   "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"
  },
  "r629": {
   "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"
  },
  "r630": {
   "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"
  },
  "r631": {
   "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"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-2"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483013/835-20-50-1"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "12A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A"
  },
  "r638": {
   "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"
  },
  "r639": {
   "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"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-1"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r646": {
   "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"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "850",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/850/tableOfContent"
  },
  "r648": {
   "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"
  },
  "r649": {
   "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"
  },
  "r650": {
   "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"
  },
  "r651": {
   "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"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r653": {
   "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"
  },
  "r654": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r655": {
   "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"
  },
  "r656": {
   "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"
  },
  "r657": {
   "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"
  },
  "r658": {
   "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"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-9"
  },
  "r661": {
   "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"
  },
  "r662": {
   "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/2147478345/912-310-45-11"
  },
  "r663": {
   "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"
  },
  "r664": {
   "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"
  },
  "r665": {
   "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/2147478859/928-340-50-1"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478934/932-220-50-1"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r668": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r670": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-19"
  },
  "r671": {
   "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/2147477215/932-235-50-20"
  },
  "r672": {
   "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/2147477215/932-235-50-20"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r679": {
   "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/2147477215/932-235-50-28"
  },
  "r680": {
   "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/2147477215/932-235-50-28"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r682": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r683": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r687": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r690": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-6"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-7"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8"
  },
  "r696": {
   "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/2147477215/932-235-50-8"
  },
  "r697": {
   "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/2147477215/932-235-50-8"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "280",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478657/932-280-50-1"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478988/932-323-50-1"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "940",
   "SubTopic": "820",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1"
  },
  "r701": {
   "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/2147478546/942-210-S99-1"
  },
  "r702": {
   "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(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r703": {
   "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/2147478524/942-220-S99-1"
  },
  "r704": {
   "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/2147478524/942-220-S99-1"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478671/942-235-S50-1"
  },
  "r706": {
   "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)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r707": {
   "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/2147477314/942-235-S99-1"
  },
  "r708": {
   "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)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-2"
  },
  "r710": {
   "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/2147478451/942-360-50-1"
  },
  "r711": {
   "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)(1)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r712": {
   "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/2147478777/944-210-S99-1"
  },
  "r713": {
   "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)(15)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r714": {
   "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/2147478777/944-210-S99-1"
  },
  "r715": {
   "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/2147478777/944-210-S99-1"
  },
  "r716": {
   "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/2147478777/944-210-S99-1"
  },
  "r717": {
   "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/2147478777/944-210-S99-1"
  },
  "r718": {
   "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/2147478777/944-210-S99-1"
  },
  "r719": {
   "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/2147478777/944-210-S99-1"
  },
  "r720": {
   "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/2147478777/944-210-S99-1"
  },
  "r721": {
   "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/2147477250/944-220-S99-1"
  },
  "r722": {
   "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/2147477250/944-220-S99-1"
  },
  "r723": {
   "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/2147477250/944-220-S99-1"
  },
  "r724": {
   "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(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r725": {
   "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(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r726": {
   "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/2147477250/944-220-S99-1"
  },
  "r727": {
   "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/2147477250/944-220-S99-1"
  },
  "r728": {
   "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/2147477250/944-220-S99-1"
  },
  "r729": {
   "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/2147477965/944-235-S99-2"
  },
  "r730": {
   "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/2147477965/944-235-S99-2"
  },
  "r731": {
   "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/2147477965/944-235-S99-2"
  },
  "r732": {
   "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/2147477965/944-235-S99-2"
  },
  "r733": {
   "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/2147477965/944-235-S99-2"
  },
  "r734": {
   "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/2147477965/944-235-S99-2"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r738": {
   "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"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r742": {
   "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"
  },
  "r743": {
   "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"
  },
  "r744": {
   "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"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r746": {
   "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"
  },
  "r747": {
   "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"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r751": {
   "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"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.W.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1"
  },
  "r753": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "805",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478072/944-805-50-1"
  },
  "r754": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r756": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-1"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480424/946-10-50-2"
  },
  "r758": {
   "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"
  },
  "r759": {
   "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)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r760": {
   "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)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r761": {
   "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)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r762": {
   "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"
  },
  "r763": {
   "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"
  },
  "r764": {
   "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"
  },
  "r765": {
   "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"
  },
  "r766": {
   "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"
  },
  "r767": {
   "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/2147478009/946-205-45-3"
  },
  "r768": {
   "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/2147478009/946-205-45-4"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-6"
  },
  "r770": {
   "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/2147477796/946-210-45-4"
  },
  "r771": {
   "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/2147478795/946-210-50-1"
  },
  "r772": {
   "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/2147478795/946-210-50-2"
  },
  "r773": {
   "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/2147478795/946-210-50-6"
  },
  "r774": {
   "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/2147478795/946-210-50-6"
  },
  "r775": {
   "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/2147478795/946-210-50-6"
  },
  "r776": {
   "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/2147479170/946-210-S99-1"
  },
  "r777": {
   "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/2147479170/946-210-S99-1"
  },
  "r778": {
   "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/2147479170/946-210-S99-1"
  },
  "r779": {
   "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/2147479170/946-210-S99-1"
  },
  "r780": {
   "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/2147479170/946-210-S99-1"
  },
  "r781": {
   "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/2147479170/946-210-S99-1"
  },
  "r782": {
   "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/2147479170/946-210-S99-1"
  },
  "r783": {
   "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/2147479170/946-210-S99-1"
  },
  "r784": {
   "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/2147479170/946-210-S99-1"
  },
  "r785": {
   "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/2147479170/946-210-S99-1"
  },
  "r786": {
   "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/2147479170/946-210-S99-1"
  },
  "r787": {
   "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/2147479170/946-210-S99-1"
  },
  "r788": {
   "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/2147479170/946-210-S99-1"
  },
  "r789": {
   "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/2147479170/946-210-S99-1"
  },
  "r790": {
   "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/2147479170/946-210-S99-1"
  },
  "r791": {
   "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/2147479170/946-210-S99-1"
  },
  "r792": {
   "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/2147479170/946-210-S99-1"
  },
  "r793": {
   "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/2147479170/946-210-S99-1"
  },
  "r794": {
   "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/2147479170/946-210-S99-1"
  },
  "r795": {
   "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/2147479170/946-210-S99-1"
  },
  "r796": {
   "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/2147479170/946-210-S99-1"
  },
  "r797": {
   "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/2147479170/946-210-S99-1"
  },
  "r798": {
   "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/2147479170/946-210-S99-1"
  },
  "r799": {
   "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/2147479170/946-210-S99-1"
  },
  "r800": {
   "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/2147479170/946-210-S99-1"
  },
  "r801": {
   "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/2147479170/946-210-S99-2"
  },
  "r802": {
   "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/2147479170/946-210-S99-2"
  },
  "r803": {
   "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/2147479105/946-220-45-7"
  },
  "r804": {
   "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/2147479134/946-220-S99-1"
  },
  "r805": {
   "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/2147479134/946-220-S99-1"
  },
  "r806": {
   "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)(2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r807": {
   "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)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r808": {
   "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/2147479134/946-220-S99-1"
  },
  "r809": {
   "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/2147479134/946-220-S99-1"
  },
  "r810": {
   "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/2147479134/946-220-S99-1"
  },
  "r811": {
   "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/2147479134/946-220-S99-1"
  },
  "r812": {
   "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/2147479134/946-220-S99-1"
  },
  "r813": {
   "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/2147479134/946-220-S99-1"
  },
  "r814": {
   "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/2147479134/946-220-S99-1"
  },
  "r815": {
   "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/2147479134/946-220-S99-1"
  },
  "r816": {
   "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/2147479134/946-220-S99-1"
  },
  "r817": {
   "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/2147479134/946-220-S99-1"
  },
  "r818": {
   "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/2147479134/946-220-S99-1"
  },
  "r819": {
   "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/2147479134/946-220-S99-1"
  },
  "r820": {
   "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/2147479134/946-220-S99-1"
  },
  "r821": {
   "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/2147479134/946-220-S99-1"
  },
  "r822": {
   "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/2147479134/946-220-S99-1"
  },
  "r823": {
   "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/2147479134/946-220-S99-1"
  },
  "r824": {
   "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/2147479134/946-220-S99-3"
  },
  "r825": {
   "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/2147479134/946-220-S99-3"
  },
  "r826": {
   "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/2147479134/946-220-S99-3"
  },
  "r827": {
   "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/2147479134/946-220-S99-3"
  },
  "r828": {
   "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/2147477968/946-235-50-2"
  },
  "r829": {
   "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/2147477968/946-235-50-2"
  },
  "r830": {
   "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/2147477968/946-235-50-2"
  },
  "r831": {
   "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/2147477968/946-235-50-2"
  },
  "r832": {
   "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/2147477271/946-320-S99-1"
  },
  "r833": {
   "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/2147477271/946-320-S99-1"
  },
  "r834": {
   "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/2147477271/946-320-S99-2"
  },
  "r835": {
   "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/2147477271/946-320-S99-2"
  },
  "r836": {
   "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/2147477271/946-320-S99-3"
  },
  "r837": {
   "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/2147477271/946-320-S99-3"
  },
  "r838": {
   "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/2147477271/946-320-S99-3"
  },
  "r839": {
   "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/2147477271/946-320-S99-6"
  },
  "r840": {
   "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/2147477271/946-320-S99-6"
  },
  "r841": {
   "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/2147478448/946-505-50-2"
  },
  "r842": {
   "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/2147478448/946-505-50-6"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478322/948-310-S50-2"
  },
  "r844": {
   "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(Column A)(Footnote 3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r845": {
   "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(Column A)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r846": {
   "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(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r847": {
   "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(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r848": {
   "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/2147478785/954-310-50-2"
  },
  "r849": {
   "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/2147478522/954-440-50-1"
  },
  "r850": {
   "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 A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r851": {
   "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/2147478979/970-360-S99-1"
  },
  "r852": {
   "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/2147478979/970-360-S99-1"
  },
  "r853": {
   "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/2147478979/970-360-S99-1"
  },
  "r854": {
   "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/2147478979/970-360-S99-1"
  },
  "r855": {
   "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/2147478979/970-360-S99-1"
  },
  "r856": {
   "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/2147478979/970-360-S99-1"
  },
  "r857": {
   "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/2147478979/970-360-S99-1"
  },
  "r858": {
   "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/2147478979/970-360-S99-1"
  },
  "r859": {
   "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/2147477332/976-310-50-1"
  },
  "r860": {
   "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/2147479230/978-310-50-1"
  },
  "r861": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/985-20/tableOfContent"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-10"
  },
  "r864": {
   "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"
  },
  "r865": {
   "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"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "SubTopic": "30",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40"
  },
  "r867": {
   "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"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-16"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-21"
  },
  "r871": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-22"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-12"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-11"
  },
  "r874": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-14"
  },
  "r875": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-18"
  },
  "r876": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-21"
  },
  "r877": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-24"
  },
  "r878": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476153/220-40-55-4"
  },
  "r879": {
   "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"
  },
  "r880": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-18"
  },
  "r881": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482836/275-10-55-6"
  },
  "r882": {
   "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"
  },
  "r883": {
   "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"
  },
  "r884": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r885": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r886": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r887": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r888": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r889": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "48",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48"
  },
  "r890": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49"
  },
  "r891": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r892": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r893": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r894": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r895": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r896": {
   "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"
  },
  "r897": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482955/340-10-05-5"
  },
  "r898": {
   "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"
  },
  "r899": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "27",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482395/460-10-55-27"
  },
  "r900": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r901": {
   "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"
  },
  "r902": {
   "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"
  },
  "r903": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69E"
  },
  "r904": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69F"
  },
  "r905": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "64",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481620/480-10-55-64"
  },
  "r906": {
   "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"
  },
  "r907": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r908": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r909": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r910": {
   "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"
  },
  "r911": {
   "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"
  },
  "r912": {
   "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"
  },
  "r913": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r914": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r915": {
   "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"
  },
  "r916": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r917": {
   "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"
  },
  "r918": {
   "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"
  },
  "r919": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5"
  },
  "r920": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-5"
  },
  "r921": {
   "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"
  },
  "r922": {
   "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"
  },
  "r923": {
   "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"
  },
  "r924": {
   "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"
  },
  "r925": {
   "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"
  },
  "r926": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "231",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231"
  },
  "r927": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-8"
  },
  "r928": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-29"
  },
  "r929": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-29"
  },
  "r930": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-38"
  },
  "r931": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "39",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-39"
  },
  "r932": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-41"
  },
  "r933": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-42"
  },
  "r934": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "43",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-43"
  },
  "r935": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "45",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-45"
  },
  "r936": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "46",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-46"
  },
  "r937": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-47"
  },
  "r938": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-49"
  },
  "r939": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-50"
  },
  "r940": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r941": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r942": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r943": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r944": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r945": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r946": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r947": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r948": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r949": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29"
  },
  "r950": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-29"
  },
  "r951": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r952": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r953": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r954": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r955": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r956": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r957": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r958": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r959": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r960": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "31",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-31"
  },
  "r961": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r962": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r963": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r964": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r965": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r966": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r967": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r968": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r969": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479908/805-50-55-1"
  },
  "r970": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "740",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478064/805-740-55-13"
  },
  "r971": {
   "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"
  },
  "r972": {
   "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"
  },
  "r973": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r974": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "181",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-181"
  },
  "r975": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "182",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-182"
  },
  "r976": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "184",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-184"
  },
  "r977": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r978": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r979": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "102",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102"
  },
  "r980": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "103",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103"
  },
  "r981": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r982": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r983": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r984": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482881/825-10-55-12"
  },
  "r985": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482949/835-30-55-8"
  },
  "r986": {
   "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"
  },
  "r987": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-17"
  },
  "r988": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-21"
  },
  "r989": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-29"
  },
  "r990": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-3"
  },
  "r991": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-2"
  },
  "r992": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-4"
  },
  "r993": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-5"
  },
  "r994": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-6"
  },
  "r995": {
   "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"
  },
  "r996": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r997": {
   "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"
  },
  "r998": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r999": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1000": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1001": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E"
  },
  "r1002": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-11"
  },
  "r1003": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "605",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477548/944-605-55-14"
  },
  "r1004": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18"
  },
  "r1005": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r1006": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r1007": {
   "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/2147477439/946-210-55-1"
  },
  "r1008": {
   "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/2147477802/946-310-45-1"
  },
  "r1009": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r1010": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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/2147477271/946-320-S99-2"
  },
  "r1011": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r1012": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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/2147477271/946-320-S99-6"
  },
  "r1013": {
   "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/2147479168/946-830-55-10"
  },
  "r1014": {
   "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/2147479168/946-830-55-11"
  },
  "r1015": {
   "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/2147479168/946-830-55-12"
  },
  "r1016": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1017": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r1018": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r1019": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-Q",
   "Number": "240",
   "Section": "308",
   "Subsection": "a"
  },
  "r1020": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r1021": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r1022": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1023": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r1024": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r1025": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r1026": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r1027": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r1028": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1029": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1030": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r1031": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r1032": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r1033": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r1034": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r1035": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r1036": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r1037": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r1038": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r1039": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r1040": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r1041": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r1042": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r1043": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r1044": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r1045": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r1046": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r1047": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r1048": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r1049": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r1050": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r1051": {
   "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"
  },
  "r1052": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r1053": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r1054": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r1055": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r1056": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r1057": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "i"
  },
  "r1058": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r1059": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iii"
  },
  "r1060": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iv"
  },
  "r1061": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "v"
  },
  "r1062": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "vi"
  },
  "r1063": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r1064": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r1065": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r1066": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r1067": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r1068": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r1069": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r1070": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r1071": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r1072": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r1073": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r1074": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1075": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r1076": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r1077": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r1078": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r1079": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r1080": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1081": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1082": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r1083": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r1084": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r1085": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "A"
  },
  "r1086": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "C"
  },
  "r1087": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "D"
  },
  "r1088": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "E"
  },
  "r1089": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "F"
  },
  "r1090": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r1091": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r1092": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r1093": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r1094": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r1095": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r1096": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r1097": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Number": "229",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1"
  },
  "r1098": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "A",
   "Number": "229"
  },
  "r1099": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Number": "229"
  },
  "r1100": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "i",
   "Number": "229"
  },
  "r1101": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r1102": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "7A",
   "Section": "B",
   "Subsection": "2"
  },
  "r1103": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-3"
  },
  "r1104": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "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"
  },
  "r1105": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r1106": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1107": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1108": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "SubTopic": "310",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r1109": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "9",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-9"
  },
  "r1110": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/210/tableOfContent"
  },
  "r1111": {
   "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(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1112": {
   "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"
  },
  "r1113": {
   "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(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1114": {
   "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"
  },
  "r1115": {
   "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"
  },
  "r1116": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r1117": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r1118": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r1119": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r1120": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r1121": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r1122": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r1123": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-10"
  },
  "r1124": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-12"
  },
  "r1125": {
   "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"
  },
  "r1126": {
   "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"
  },
  "r1127": {
   "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"
  },
  "r1128": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r1129": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1130": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1131": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1132": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1133": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1134": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1135": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1136": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1137": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1138": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1139": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(k)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1140": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1141": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(m)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-21"
  },
  "r1142": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1143": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1144": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1145": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1146": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1147": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1148": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1149": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1150": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1151": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(k)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1152": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1153": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(m)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1154": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(n)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1155": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1156": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1157": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1158": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(r)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1159": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(s)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1160": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(t)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1161": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(u)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-22"
  },
  "r1162": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-30"
  },
  "r1163": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-31"
  },
  "r1164": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-32"
  },
  "r1165": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "33",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-33"
  },
  "r1166": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1167": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1168": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1169": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1170": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476148/220-40-50-6"
  },
  "r1171": {
   "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"
  },
  "r1172": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r1173": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-1"
  },
  "r1174": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480738/235-10-S50-4"
  },
  "r1175": {
   "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(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1176": {
   "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(f))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1177": {
   "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)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1178": {
   "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"
  },
  "r1179": {
   "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"
  },
  "r1180": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r1181": {
   "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"
  },
  "r1182": {
   "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"
  },
  "r1183": {
   "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"
  },
  "r1184": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1185": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r1186": {
   "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"
  },
  "r1187": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r1188": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1189": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1190": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1191": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1192": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1193": {
   "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"
  },
  "r1194": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1195": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1196": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r1197": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1198": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1199": {
   "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"
  },
  "r1200": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "340",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483032/340-10-45-1"
  },
  "r1201": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1202": {
   "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"
  },
  "r1203": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1204": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1205": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1206": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1207": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1208": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1209": {
   "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"
  },
  "r1210": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A"
  },
  "r1211": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1212": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r1213": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1214": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1215": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1216": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1217": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1218": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1219": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1220": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1221": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1222": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1223": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1224": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/405-30/tableOfContent"
  },
  "r1225": {
   "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"
  },
  "r1226": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482047/420-10-45-3"
  },
  "r1227": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r1228": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r1229": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r1230": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4"
  },
  "r1231": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r1232": {
   "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"
  },
  "r1233": {
   "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"
  },
  "r1234": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-3"
  },
  "r1235": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r1236": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481544/470-10-50-6"
  },
  "r1237": {
   "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"
  },
  "r1238": {
   "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"
  },
  "r1239": {
   "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"
  },
  "r1240": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4"
  },
  "r1241": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1242": {
   "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"
  },
  "r1243": {
   "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"
  },
  "r1244": {
   "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"
  },
  "r1245": {
   "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"
  },
  "r1246": {
   "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"
  },
  "r1247": {
   "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"
  },
  "r1248": {
   "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"
  },
  "r1249": {
   "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"
  },
  "r1250": {
   "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"
  },
  "r1251": {
   "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"
  },
  "r1252": {
   "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"
  },
  "r1253": {
   "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"
  },
  "r1254": {
   "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"
  },
  "r1255": {
   "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"
  },
  "r1256": {
   "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"
  },
  "r1257": {
   "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"
  },
  "r1258": {
   "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"
  },
  "r1259": {
   "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"
  },
  "r1260": {
   "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"
  },
  "r1261": {
   "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"
  },
  "r1262": {
   "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"
  },
  "r1263": {
   "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"
  },
  "r1264": {
   "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"
  },
  "r1265": {
   "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"
  },
  "r1266": {
   "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"
  },
  "r1267": {
   "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"
  },
  "r1268": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1269": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-4"
  },
  "r1270": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479405/805-10-25-23"
  },
  "r1271": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r1272": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r1273": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r1274": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-7"
  },
  "r1275": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r1276": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r1277": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r1278": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-2"
  },
  "r1279": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r1280": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-2"
  },
  "r1281": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-4"
  },
  "r1282": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480060/805-50-25-1"
  },
  "r1283": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480027/805-50-30-1"
  },
  "r1284": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480027/805-50-30-2"
  },
  "r1285": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-7A"
  },
  "r1286": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-8"
  },
  "r1287": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-8"
  },
  "r1288": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-8"
  },
  "r1289": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480870/815-30-50-2"
  },
  "r1290": {
   "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"
  },
  "r1291": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1292": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1293": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1294": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1295": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1296": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1297": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1298": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r1299": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r1300": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r1301": {
   "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"
  },
  "r1302": {
   "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/2147477401/830-230-45-1"
  },
  "r1303": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482925/835-30-45-2"
  },
  "r1304": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "835",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482900/835-30-50-1"
  },
  "r1305": {
   "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"
  },
  "r1306": {
   "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"
  },
  "r1307": {
   "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"
  },
  "r1308": {
   "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"
  },
  "r1309": {
   "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"
  },
  "r1310": {
   "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"
  },
  "r1311": {
   "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"
  },
  "r1312": {
   "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"
  },
  "r1313": {
   "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"
  },
  "r1314": {
   "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/2147479532/912-730-25-1"
  },
  "r1315": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r1316": {
   "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"
  },
  "r1317": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r1318": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r1319": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r1320": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r1321": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C"
  },
  "r1322": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D"
  },
  "r1323": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4G",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G"
  },
  "r1324": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1325": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1326": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1327": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1328": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1329": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1330": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1331": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1332": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1333": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1334": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1335": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1336": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1337": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1338": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1339": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1340": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1341": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1342": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1343": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1344": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1345": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r1346": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r1347": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r1348": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r1349": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r1350": {
   "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/2147479134/946-220-S99-3"
  },
  "r1351": {
   "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/2147479134/946-220-S99-3"
  },
  "r1352": {
   "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/2147477271/946-320-S99-1"
  },
  "r1353": {
   "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/2147477271/946-320-S99-2"
  },
  "r1354": {
   "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/2147477271/946-320-S99-3"
  },
  "r1355": {
   "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/2147477271/946-320-S99-6"
  },
  "r1356": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>67
<FILENAME>0000950170-25-108070-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000950170-25-108070-xbrl.zip
M4$L#!!0    ( *Z##5O:Y)[Q(8 " $A,)0 1    <W-T:2TR,#(U,#8S,"YH
M=&WLO6M7&TFR+OSYW;^B#K-G3_=Z29SW"^[NLVALSV:?;MMC['TY7[SR:FI:
M2(Q*LF%^_8DL21@,F%L)I:#<,X"D4E5F9,03EXR,^.E_'Q\.JL]QW-2CX<]_
M(5OX+U4<^E&HAY]^_LO._N[>WE_^]R__\M/_0JAZ\6KO=?4Z?JEV_*3^'%_4
MC1^,FNDX5C_L__YCM3<<U,-8_?>O[WZK7HS\]# .)Q6J#B:3H^UGS[Y\^;(5
M4CUL1H/I!)[5;/G1X;,*H?G-=\?1YO>K%W82JVV*J4!8(\+>$[E-U3816TI@
M_/]CO(WQF:^-CD[&]:>#2?6#_['*WX)G#X=Q,(@GU:MZ:(>^MH-J?_'431BF
MWZIV!H/J7?Y:4[V+31Q_CF%K=M.#"= #:#)L?MXX,_0O;&LT_O2,&&.>'>=K
M-F87;1^[\2#4I]?FE^V5%&/Y;/;AN4LGEUXJ9I=.SEY:GQO V:O9,Z#C!*86
M%]<#Y?_XSN7Y8V>;T\N/+UQ_;G[YT\6E]?%5]R5Y&'G)\XHO+A^.AJ]AY<>U
MO_QK83)^-CDYBL_@0C2<77DZJJ:^;$PP _+LOW__;=\?Q$.+OIWZM$&?K#TZ
M_6:RC6N_-__@66:*Q<7P>)0?WUPS.O@.1Y@@1A;?]*/I<#(^.;]Z3?1;GT:?
MG\T_//>H^GB"X/-S#UI<_Y5NSR9C.VS2:'S8<G\F:\OW7Q\<?4#-U%W^X/F'
MYQ[<C"<7B0%OGKMH.AE?R2_F&7QZ2K%87_YH^.#\?)L1IT1]CVEG5YR.LYF<
M7^\&J!@F!\!\ #XM/.3[8\GP*2V 8^AE D3QLW@\B<.F=H.(8LM8+4$;1+?P
M&5)>2<9OU^[R>7QOX2A%F"(B-W[YE^JG@V@#_*Y^FM230?R%8/2WGY[-_L[O
M'L:);9$1Q7],Z\\_;^R.AC#\"7H/W+=1^=FKGS<F,*MG+=P\RW=]-K_M3VX4
M3JIF<C*(/V\<V9#1>EL?'3\_M.-/]7#;3B>C_U4?'HW&("J3Y_\$H0GQ>!L_
M1U^B^Z.>H'Q?U-3_C,B&OT^;R3;!^,_/CT9-G2>S/8X#FR'^^48[VE!_7CPL
MU,W1P)YD.<^?_E0?;^<QQ?'LSSJ$.&S__ H$50U4?_71XD!9$AX%+!3BFB5D
M"*/(>!9CE)(JQ3:JH3V$I\!Z;+^;#B+!3I"=\?C]^' X":\&]M.<-L>3=S$!
MU3X*H21)SB'LK4=<*H.L=!Y1XJAC)&BJX:ZS9?IY ]9U.]7',:!D!P"'O[2_
M?GIV;KQ7#)\S(153*%$C$'<:(R>50LI*FKA/+'*_&#Z(QO;+(:SVR2ZLXM@.
M]C+Y_T\\^7;TD5,N@DK(4LX1%U(@P[A&(F)X%\MDA=GX!0, ,D$DDS<::5".
M4JPHS%%(Q(/4R$A#D3?6:>>(I/@<H5^/AF=IO1-&1Y.X6F(+2; 1 (/:I8@X
M!ZZQ5C.D4_)<<<XP5F>)O3 W7H%)8@=OX4ZC\ K>:^Y&\+_1&XTR\20ID#.S
M!(91*HY,2B3_\-%9RZ3%5W%T$506 4>L$Z+4&QB_,T!@:8%E/%-6\9A\^ ZC
M%""4)#"GL+$(1PE\0AE&P.0,!4F9IBEAJ^)9/MF=CL>G;/(_T8Y?#D.V-^_&
M)@@1"HKZ9KQ"DC78)Y22T4!A!D(I+ P\.(.5P03F<7:D.\#.H67I2^A[L^%]
MCXROQM:WUO:<CA2H!:R J-& S0HL'Y/E#3@$H$TX LR]&-W<K-K>'1T>UI,\
MQ&9G&++^ B4$KD,=+TB=X"X8K$&<O8'QFN" 'X 6VGI+%,. 48"=TV$]^\*'
MCQ_V7X J;NKM83T )3B> E<L9K(8^A53498$T.0. 9,"^FDND!9> V]A0RP\
M*PI_CZEHPH7RP-!29-);D![G'&@QPG&RC'B19::;J8"^B918X.D435[FB#2C
M'F%@;"TB/(W3BU/)"L=/_JN>'.R"8A_!LO]66U</0!N]BY_!-(KOHA]]&H+R
M#]_.SAH72&8L$@',N#? 8L8JY+BP#K0\(!N^.+L0?7T(S/;S!@*QSJ(% _I&
MP,$B0V$T0?-K-WZAP+#\AH3 DE,3P%;@ A0PCP E6GJP)(@)4F!@W<"[)02&
MX<%L Q \@K;7\$2;/$$DP1)3P#;-95>$,%B0JPCQC0VBDG).142\ X6#'4>@
M'QE2(AHF(PBPN, 0IU,]M/40V!J48SL<\*#>N$']J;5>7QX?10_JZ'U]")>\
M2?OP;I-F0YEI4_(MA90UU!A!D?6!@4P;!5:&!T$P"H-."8+IL/'+6_G[C>!1
M@TA)9P4@JDS >(!"SEM0^"X&8'8B<1(/-3,!O"\#<4AQ8'W>"J#5%-% )5A\
MD8&Q"C,C_W.CF='D*1-4(N4LX)&,<+?H F"UE@3D*3'N'FIFABFGC 9MH1@!
M8;(D6X9971K 1JH#X>SF,\NV&5<BFS\:E&_ $EE@3Q0$J QF02JC>:B920NF
MN0(/3!H!W,C!F# .F @GSXAT2H <7PG#W[?[/7.>28^\##!+<%D0Z*^4I2\
M^@0O7+HXRP:>X"?3,8Q_;^BSU0%JI9GL3\#8R'KF38*W 9+>C$'W'(WC079=
M/\?9FR]//=F77QW9"S9 %#:!,D."V( X Q7G?#+(4.D=,+ !KVSCE^_%1/[T
M9G(0QV#4C8[:9[1#;1]_!(^_J:&N '<81S02&(4&*+ B>20989H'BH6\A+N7
M3YWD9$I4 *>#202K!O8M_ 7X;;4+GJ@8'.V6.L_.N[_CF"*8FCXVO_R4PVG;
M31N]@N%5;7AM.X>9?MYHP$D?9,YLWSL8Y]'GN A:1#ZVCIL OG][^[/W;%\V
MH^FX?=6&"[?G)&B7!BP53)2.1".EN0/QM, @#(PNPB+SP5BL)9!@_M78>JN+
M5W7(KU,=QU4[['AI$&MW[_^<]TV__?+B=DW\E%=U]C+ PXZ/!K6O)[_'0P>/
M"/5A7M#1\"N+G'+"RW],LQ<-7# :MN;9<=UL_/*5DR8 (S&\M.,,)LWLAC\]
MN_0YORP&>#J<9Y?-_:@%F%-*M,'&R2]M/'!N[9__9/%Z\;UGY];BBJ6YB1&Y
MY*59W>09%U3G*5,.@!I%R($4$%+KJ3.,!7A5*E^"4>G;B$[&G'=U\\>O)[^"
M0!X<VO$?YUESQ[<QX09,S%A_MH!6US#G?<:0@X;G'[^P>"]<W+V( ">,)]F)
M_F41-,>G?/+UL]/U#%\O/<=2BT_NQ%(<<VXH&,*. R-A[)$!_0P6FXN4&06R
MEDIEJ1VX0ZCS[M3GN!]!&=83<#M?'OO!-,3P:CPZS.@WG;0K^"8MH [LH/T#
M.XZ_GEQ^@_/L\!*TS.@DQOW)R/_QYBC?:LF,(&[."'"I1 QWP@@6<X9E0$R"
MG<9)M*#S,#S >W =N3:&%LL(K\ @GL3?8!7#WA#0]5,V<7::)DZ:7T]^MW\?
MC7<'MFDNE_-W;<!^-&P.ZJ/EJL%O5NM>F@ ,U2 58$:,/OOV%EDG,9)!.@VN
M)0,#KM35>CNPP]=@ULZ6(YMLV^^_C-X?C*:-'8;][.9,8AS.[)>]%H1A9?.W
MBA*\LY?>2_"BI48%B[S7.<+'+=(TAP22-)9K+@&@2UW*8HS->ZPCZTB3&B*B
M=-*@&#$%DPR$4T=PIBD5UB2A;53%BN3-C;-].XC-/!3Q.D[N:YDUX\GV#*#G
M:-R<087%>X .O07XK078F>(WQ%$?L4(!/']P*B18@ %S\"R\H-QFWY^4RK<[
M7^PX?%W EFO.Q,5^M4T,;<RDSD&QUH3[D //^Q]*6LK.C/F;!2E7L90Y9!.N
M7L=[QS;W%P2>,<)/R[GQ5ACE^^154XL%7NZ33AGT# $+,D.-Y$0FD2E!'>*,
M!01J4")"E#$L$DE<+!4[+MOE>C&=@?T9.)EO=.5WLT?Y.G[YM1X,LA7S)KW(
M4<5QAIAV[8LR:SI3#U(1R;5'S/"\">,4 B1QR,(26Q5]T&3I ;<EFZ<[WD\/
MI^ %QM!&KB^)G"_;+V0=10B-RIDIQ""K\M8&9@Q9:2*BWAK#%;CVWI>Z6BLS
M0M?". 0FX2N0?B4M9PG\F:046!0&(V>L0Y0IYJ)R48BE.Z>W#;=W)TPVJ,2=
M0YKHK-V<1L9ACZCR49G@#=>RK,FW^<_8=#)YKR7X!18EH_,FJ9;(>8'!M#0^
M.L54LDMW9^]@==]41KITH(+ QB;0BSAGT@6/D<X!N2!DB-JDI#TN%7-OJ"%S
MEE>V4,%_6JHF9-WME9EH)8TAHJ3! ^(6@VEJ0!TF;CU)(A'-BXUGSVR.T[7Y
M;>3/6*6+B_X:AW%L!SO#L!/ FZB;5A=]7NRR+]_!78&H68R%3<0BGR+H)!4%
MLGG?RLA K04\#JZX1<TAKM.E_&L<?1K;HX/:P\J=6\[7H^&'ZP*C'5LRX+G4
MDQ78,2OP8JQ@$7261\&YG!7O* *[!K29MA([B@71Q65T9,9Y9X>?%L&M'"H%
M.3^<'C[2)7)<>B]0C$ID>U.#J1D9$H9RCW74;OF9'4L%['Q:TH[] 2#V"_!=
M!J.C5O$^9KC6FD3)' HI9ZE$E_.Q$T;1:J5#<,K88K>VEII<T$:6/@P_QV9R
M:8!ZV3MDJ]EIL(9%X3%&P!<6Y;034-S"(X^] R/:\%AN^E+)H:1[+&U7FY_6
M.!JB ?GV"@PSKPBH5JH0-U9[H1TQQ*[[TH;01H'MX*VMP]YPUQ[5$SMXE&&?
M&QUF*70Y[Q;7_S5^JH<9P;^)Z?]J!WD+YW%:7%9I'K5 X#R!>B8T'Q4-^;R7
M4"%1+F*?\G7/@$:'R;\V2"]%4D@0EA!WG")-8?$T)4%@1:.(KM35ZO-+2MA"
M6)$3$#TU.(=K! 77&T>#G&,Q>P*!,% KGA>[1_S*UN/_M -0 R>G?_X[W#&[
M<2>_92?N_,J>7K0W!->@::]@7?'6F<'\'FTN'M0><A['?TQ!EDZN&,F92W-&
M_72<CPYU-:1?ITT]C "S'DRG60&,,_*U;U,\&M7 #+_]MOLX-6CT*>6\6VR$
M -Z6 ,>1,I24 [".25-:K)VT!D'FU1B_CG*>B)>(LIQ;K95%QN4M4*($++;2
M29I2%[7?0R\O[ '*SA'E0.UY#(8;YP',;&40S95[L- TF'*C8*4F6*X&[YWP
M26,=P ;/9V.U)JBM3()Y$@FH[Y5=^PC60X4YEI, Y20WX+8R)"@W^?2R1X[!
M7T0I$#^G< A+S]E8JD;>CVWV(6CDWP'38SY=_6#*>!42)Y,6W'!D63Y5D;!&
MA@ Z:QE(X(S%('2IZUF4][!24_U<BD=;HK$360?SFA)G4<@'%7D0(.LB&+"^
M-76:8<M5L8KU^X?@=LZ>@SM[ /7M%'@'E.ZC/0WG-(_)&(QT\AQQQB,RUH":
M%1I[D7"4=+WQ>Y6[P"N"<*LY QL7.>/SWA"V2/.0D%>28VP5T;[8)7T(""\'
M3[UWR;F E \6=*T&/-4$Y_(]WEML U'%13-R@/?M>!2F?O)FO!_'GVM_%E-_
MMUFGY5+6<7]ZE(NZ@MS!]0DT86OD[H_2!'R<>$86YW<IZY1J9\(8&-'<!X1C
M+E>8G5&M;8[&>@?_M,>DV#V?^5[<_D&,WX!KN]8[WH^G,<RA-)<CG&W!SPI7
M+@K8U<M8V//YYUV=KG(!K!DN)0J>IURG"M8J2H$BV,2$<6UQGR^QKC'&I(/5
M(('$AEQHV,+2<@52Z04EEE-,9+');L4<^E_.J0]/L10AFERT$*3.6HNLY7!W
M83D'CR,R6=P^ZS4YQO,:^]O_=^>1B9$'_U]%09&C)B(N8)DL@Z73QELC*;;$
M%"M&)856EW,ZV',>N8P.):E!DJCRX,:%7#,[!IS@/\R+2[I^$NF?JS$]/3<F
MF-!6(88?3FEDA;'(8#!E.-$.KZHZP?K6+"(*Y1I=-UG*V:7=I'MZH8+D6B,5
M<E26YG8#23DDH]#8$*^9*M:E+W@?I$LK1O*D$I?(.TG =Y FNW@2.663I8EH
M@8L5MI(T8P$)5%ZYF+*<49E; %#N4 92D&8BD@7? :=BP]SKD62R"F6HD^!"
M""2R@\'!4D56"XN\#2Q2,&M)7+=8V_[4-7Y<STID?HV[Y;V,6>CM@0)K*Y)2
M)T#[J9P+,#N:"FZC!"EEUG&'/;<T%KM167*P9CFA->^5A371R$7FP"!E ME@
M<@W\*%7@4>M4;-&S6Z6^SY2GG<19@Q;X0N[OZ"=3L&O&N3[[Y&1=W,G *.7,
M*&0YN Z<@S4+;GY$ =LVM\.)\MS)#)F[.?H2QT< 0R??^! O0&3@MS_MMKD'
M]*DG;;_--\,'KGO]4,?!E\4=$3.O'4HXY#*J/B+'B$341V&=QDF98B6Z:)>D
MLP,L@:48\H:ECQA,'H$]<I(11*+AC@8O4WF!U0>0H&5BR/N#<5QZ[;+.)%AA
M!XY-1#%1@WA0"FFF(EA0(AJ)I4^VYX^[!_\_[#\R%RIH3#U1'$65 $\,W-L1
MR5&2V"9.'.6BV*WLV]MP;=X>,- B8>%]] ?#T6#T:7WL-VU9XL I(F &'E(
M#XF$@$+@"F,;DR^OT/"-S@\NUU+KNZ24 #5>IZ0PTIY$Q(&YD,%Y)PN;:)SC
MQ(;B6/=6(;C<0RR7(QX\TK2G8#@)27J4-$GYX 9%5D9P);U05 IE5"HN.M/J
M];R9^"X>+=)^QUF['YX-NN7H]X4+'N4YJF"BI99[9%7NN6R, ?\?&Z24QAX'
M&@(I;DOC&MNL_7@TG1SLM*WP[*/,=0J62,651U'G%E.$A=PK.R ;0>L'3!(K
MUTXK==]W10T&@L=:,"I12+EGI?,6:6D\4AY+*4/D*107@BM4#ZX(0P.)S#J%
M*'.Y!%?P2"O'D9)44AN5T;)862QY6W@E2YFKH5*7SZ*"39KR(9G@&5+,!T^]
MXAP75W*KB#S%59B?P8&]$A.*G G$O77(YFX[U"D>L;=&A#+-S^O7ZM>EAI56
M8:XD:[&C%BE.\\X\+)-1-(<A=:()<T'#.H4A"ZJS]. [6D^JSE*D3A M.3(:
MM]7<'-AFR2!'A<4B!LY"L:J]F",%!>!/Y)2+7'O1TMSA6DB!#.,:B8CA72R3
M%4LO/[,>6C5*&C&S%*E<YY]S*X'9P9@-7'KMF,$A%EM9K.24FQ+ 3"KG76XT
M(^&V/)>2-8Q2Y"V.^80XI;;(]+C5&DRK6JODB-"P0IJ#<4MSIYAH&(+_.Z&2
M\H07U_BTB+5:@=,8E;-2F80,3;FV63Z5[YU!TL9(E6&>KGV=YJ7VJKF'UNNJ
MU':T1'.JP.]G$<0-J Q:3R:DDI!640VN9K'IX"5KO>6<PP#+A ?09"BJUBHG
M#&G+-+B4+L#_DO;EGK<O3N!6I-^BL(F#K F2RV0SKP$SP;$R5'JGN#31%GO(
MM(V'3OUDFJN^YN#VSC#'2./X\S>^\FF5H?@YCA^@XOF*EC(%&Y, ['2$YE9M
M%CF1#R,R'0-U06)<;'O,\BM&L9OK0];=GE1,*9?#4,@2#ROI16[$YRC"U$A%
M%5-.%+<G5>[6_FH\^40$5R98Q&PNN<N80(9H PM)%5'6@+E3+,3>J1/!^[$-
M,4OSVK0?2!SC9)Q#QL*R<PIB!EZ>1CBZ2&6,4LCBQ&P=S,X"/(K$20HL*>29
M >D+X,7KH%F.J!'L?916%UOPNJ@:FWV%_N(LOF3 >*>)P^VRQ><]!;N=!Q0X
M=M;** A9>]A:P;&@#AOU)B,C"V"P.15\3N-/R$F: XF&"PD>L\9+C^+?.CS0
M54Y\,L$)X@4*C%G$2;3(:(V12#D31R:KQ+J7>'O0\, *6M\EDR1CS.6#W\"_
M-!=3E-0@XB.W7!C-3;$AU6]2JLY%#;XI2;1&=:>2M4YZXA&+'L.*$ *.A,#(
M&J(PB4Y'6JR77X)0+0GJG$R)"O#L8HZ$&F_R7P01JUWP1$70 :6NRK5AM-::
M^@T,N?@^C@_K89MJ\B@-*HQ9,"PF9'D^9\U PC25%"0LI*"P(KC<ED>E&50%
M^'X8*ZTU./.82Y!*+PVR5DCDB2;41!]]*%=[#9=8H^]"8#QC[9NC!Y#KU:0=
M@4W/HTD!Z79;43N/;/( SXD13TERFA=;TFUWM'XM7U>S_X]IM(&JB*35$?R-
M()&-5",F2:0)Y%V5EZM1] ;(5UOIV_J*][&5 (P)E98@YG/)-YL(TE[XG-I)
MG,#!&U6<!7M-=;!BBNZO EN=)":&? (N5RK@7.;:8!01:@,6CG,0R;)"'!UV
MY,)!&4DX0]%E"X-@BYR2'E$G=10)^+F\\H7KPLLKV*K#P;J8-UD9=@9Q01(R
MH%7 "0C6!AEBU,4>CRCL"."*P"@I:RQ3R% "NH4(\,.U#2AQBX6-AA!2K*%7
M6'2DPY@53K <(%HHQ(1ST]F(G%48$9RX\"%('(K=@RMY>W4Y>Q:$>"-R!FVB
M1 ,(!K#/HG>(<,$]IR81^32]Y@(JVZ\ 4HF@,1*>MP!RB_OH#7(:#*C$:1).
M4*IE<>;Z(P^BK"8X2D14WG&*A+. XF#U(V.5R@5GF-0A&4^+1?&E':^_\0@N
M<?#?[G] [9//CF0TG#8/TP!S%5@BI6,N@BXQ.;[.K046<A+AD%B4S"HGBE,M
MJZ] N")Q5V %,.^1%"PG$>.(P#FR* @F(@_68[7TM5J/N"/11B;"+=#'.,0M
M\SG!DZ*$#?<R-YYTQ15 Z _5EW2H?C71#J*#%IY9I)(&OA4F(1>TA[LSV\8[
MK"[7LEMQ<D<)RV>$YI0S%$QNLTA\0CHQC2P7,1$BI"BW>WPQ-1&6XT)3(CQX
MT2!9(2?I")T;H&3O*4CE Z4BQ6+CB(_:A5Z-*44IN-!! H-I07-:"44V.HV8
MPD((&U1(Q29"%KDQ>79-5]0ECE)K);$,,-?FQE5>(<>Q1@HPG@2NJ"KO[.OJ
M79G5N)V4Y31Y&9"BN;@JYA0Y%P02U$FGP$#'KKA=@=57DUN-,T4E#RJ?) ^&
M@>HD8)F">R60P0XLU,@$+O<H5G]>I^#S.LO9VJ(J18^M0#1(8%<.YAY8XQ&I
M7 Q1Z60,+^YPY^KKPZS&8:*6JT@#1=12A;C4#%GI(XH>M(,CF'%1K+^[LCC-
M6L1/5F361VU]X@8)AU/>&9,@^X(C+5T4-!@<1;'9XN]BNU?]-O=<>C^VP\;Z
M;^$88"!,#NKA']=K@/7$ X8=%?E<DW;! AX$@EP$*/=1$>&<SO7;2UV_WM0H
MV-0HP.5AU.FH64(:9_<T;[=I!2X/EXI@GDQTY6W6%N&>K@*'&#&8N8@PIJ!'
M)$_(&*/ AO26QX ML\66^ERK?JT=5@QA+'(26,Q2Q4"^<DE;#@ZKD#+82*(,
MH=@UZ_?\"K%95Q!>89PYG/O'RB1\[E/*D"'2(F)CB@1'YD6Q.Q-%GW!<C0L"
M1 :G%FL4B#2(:P8N+;4!,4^(T<)9JXK=6>A=V@)-$4$<8X(AS;3*>\H:69LX
MBBPZ%SRC,19WGJ54>%A.I0&FHV<>_%5GP$[D0H'3ZA5%*1'*%8G<LF(-CSX+
M\Z*0TYL+.454=R+D)D@73436>& A)6,.64DP"5BD5GCO7;'G9,L[)-/544)F
M>0HJ*"28S1WD>03+S 3D*#4R>.6-*3::N#8=G[OT #U6QGH!LI.CAS8#<4SY
MP&"@T?K$*"MNYZ>/'JY;]'!%7F*T@9LDD7)"YK)U+C<T-4A9QC1U3 =?K(:X
MT3G8O\8A</M@9QAVPB& 5],:]I_CR^,CN-_C+(_!4E0$LX@X9;"HGAID@Z;(
M:RGSB3\I0LG;GW<H@O(Z?OFU'@QR>N*;]$TAE$>YQ)Q$824\63,C$ \X1_V5
M0Y$*8EW2V,AU<0Y66:ZO0RN!4V&H8@2%(#2L" &K6X&[QBW(7N0B!%W<B:=B
M]XA7L(_&F12) FA2Z7/E*)9!4VF4B' V!,.Q+&X?K?B>PBM:2IX3"4'A40=2
MR)F52$<LD,0B<!*2X>4=TRHB"W0%<6VNJ2?6@PIU B,.=B<RTED4**Q5C"!W
MMLBU*KZNSHKL$BT4F%_@17@E9[NEADN%@C541\EYY,7%-JY9SOVI:_RXGAWW
MM]D9'&90S0<BID='H_'C+I3$#0-YY (EF8\.&L>1"=R!OPCK*;@1O%RU6')/
MDPXSD[F5,25/47 <+,\8,'*>&.2M(2EXR7VYV:Z/MV['*L 79-)9&E NY8ZX
M"_F<*+8H.4ER1"#A\FK4W2J8DXM5Y\@E8.\9A?J80SG<.8XC]4C)7$?#RX <
M!\VJ'4V1<N5]>?&Y-=&G*UK00'.'TX12VZ6(1HD<!O/7LJ13@#7%C/4+ND[.
M9K3*",N19]8@+CT()XD<14R(RP=-(BDV,>?[1WZ_GO=M=V#WVK084+,/<]+W
MAK()EW;6@Y$GB77N(PV^2C[B)2RR@8&MBYG"!C//RMN8O29NT'X\FDX.=@Z!
M$-X^2A]%8,DXIA*19!+B(3<&SZV8+/$Q4),$U<5A:LGU,3K,=1#86"QR.X:H
M+2Q-R U.C4%46!<4.)(BK'L6Z@,VL>EN58)QN7<P5CG6;:6$5;$4)1&X56!J
M4E:LH]#GM!>2M+H"6TN07/"HS<3)C3VIP<@(G*MVI\ TD9Z4R[<E GV'V:J"
M:$"0*%"B.?:@K4<6<X:4 H_&)V=\N3W);Q1[V(]M?@%X-;\#TL0)_/V8 P^"
M@I_*!$=)894320*R/()A12,ES"3/3;'K65I^^#V6LZL&68*[8+#62+>M6, \
MSA41$@(YM40QS,/R:SNO+$ NA)(D.8>P!UCB4H$Y*IU'E#CJ& GZ ?R#-5&P
MEG#@"(I$8& 8)@*Z%6./L/,D>F4L7WX7VV5+_8KK]W?)UQX[8H) \%,BSG/_
M0B42DIP&E[QCB2]];VZY$8+.X"](X.-DD)#YX#65/&?;,^1,Y%@F+$):>I;!
MFBB*J')]#(<4>(*($PLFMLVI-(%*J51D4:ZH@MH$G)_PO1RVUM%[%P_!?@;C
M[$S^TQLWJ#^U)EVVV'(*U/OZ$"[)_7$F=9-FV6[["P+/\.*GY=QX*XSR??*J
MR<4"+_=)ISAVAH %@9ADD2OJ(J*6&Q!-@?/I"HDBQ:"9(W@.JMC:+(5U8EI-
M!I<4FCDC<J--G;O\R8A,# 9Y&J0TF A:;LW3TCR%)8F8PMI&ZK+QG[MX>)*M
M.HZ8].#A,:>U76\16V5>P&H,=:D$]SXZ%,*LHI5"SD>XN[,.4-,"HA:[I&MB
MJ'=X-D!JFWBNT>2RM<Y)KM:D/49$J&@CF/ F%;>QV!_E+FJ/4UHBJ>$$['*<
MTPP8148P,,YU(LGP&'PHMEIN\?'555A-5C&E*$42EA%\]QB0<5HAG#PCTBDP
MJE84:7ET?I;N_:S,<%'CI"-%.@C0088)Y$)N)Z($]498;$)Q%L.Z'+18 7XH
M;"61WB&>8D(<*XIL3M./QA+F!=,N%:L/BDNLZ,S0RX$,Z4%L@\V=$SG(ETO@
M"TMFI8+_N&5%GF;:S<?+XO@H'P#]QM1Z :H;?OM7=<[JK.U@#^A33Z89!]]_
M&3ULML,X@B/^ +D.RX%@)6E*DBMD3>*(.\61M3EPXCW!@DMG\=)CJ[>;?(>=
MDI2T07"*P?/)AS*I<$@3JY#RP6DC0XJQN-8<)0%6 4$')2/67 0DJ/2(6[!>
MM7(<&(0Z&;TBV!9[%JR8])L"]GA@':UGS"*A<M&7W./9)&(15<HS PZF8,66
M*BAF'9>D(E3T/%F-DLMI5 $K9$QN7P&ZPSA8-"F*/.^SXL3(*S) =WQ[;CZ7
MC8KU9^L&3R,Y\U:HTMGI"64YB=@Q>#+<EK-LV&!#4;0B<6F2<K%'E77P+*VA
MQ@CP)WU;\-P !(%/ SBD,-8I@&^YHG)WCRXR!8I#]9$I90.FEF=CDH Y$K.#
M%"U#@C.,I<'!R.*<YO4(;:_(37!8:QHCV# J1QJE0,XZ!RM++:8*7#U6[)F?
MLBIAK4@!.*%QY#E=EK"\U03N <WMIC58HE0&%G6QH<6^WFG!]4Z7<_)$A2"B
MUGDW/>9J7R;;G9J 7ZMQKJ6<>"@V*M&[,M=KL!5LMJO$L J>(YVTSBV?$])<
M1,1HY@&A@BZW7UQQ&FP%AY=4,@E4F$)2DI"+5N7,F^20428Q;RUCY:W?ZGNB
M/=1:38?U;*$^?/RP_V(T&-A9,:?3%0GU9Z#DV<M?3P%[[&1T2M?#F9+\I6Y&
MG!(%9'FQ>-KBH\7K2[^?WWP1AR/PH"Z[[9P">53-]^Y[[A;/SH_^S&67S/QH
M>F;"YQ^;/_K>0R^YV^GF7/UU<^["W5OAO^S*6S[LP[#^',=-6VCK\H><O>*6
M-Y_1_ K*7+\@E]SQ-"IY^5A//[[E;7<^@:*^D@*+3V\[5I#4*X8)G]SR9KDN
M3QUJ.[[BEE\_ORT#[+^X<,<;"N)WUN?[R_/]FSZKC[>!,T;3L8_-[.5!M*%%
M19#'7_ZEJGZ"WU4S.1D HA_9$$#WH<GH:!MOB7KX_)^H'H9XO$V?@SBC@UA_
M.IC 1YK 9T>CF:$,3QBTM>.?N]$Q:NI_PBVVW6@,CT'PSG.8P-'B"0D@+U\2
MMPD^FCP'>^X3W+=]WO/VLV0/Z\')]GM0 $WU.GZIWHT.[7!QH1M-8-9P;<9-
M!,+Z:;@]B.GT1OEO^'3^:CP;;1Y <V2'BS%\.:@G$<$[/FX?C2/Z AKE^3<#
M^]Y8VL_^B&VH<WLX&L:6-E]JL!VV4SU!+:P/)_#8?_L3D?CY3\_RTX'B1]]0
MW><JBS]OY%C4XDOM[QQ+'6\LAKM8 G$)P<^2=K%X<QJ1Q2PZH/;I8K:OZ185
M1Y,JC*9@;5]8B5L2>XFT7CK3/8VI9K\FCK^=K!\-1N/M/^'VW_.KI_YE!AEN
M- AG:2$[(\:'UWOO7[ZH]M_OO'^YW].DI<G^R]T/[_;>[[W<KW9>OZA>_O?N
MO^^\_NO+:O?-[[_O[>_OO7F]UH3J3I+^:V?_W_=>__7]F]>;U8O=BF+!S:6D
M.:M?F-@B6OWY^:T EUTSYN]#+BAC0-QF-*C#>>76CD7\^7J27P-.UPUOR>!T
M'>NOKRB^>O/N]VI!C;,CO,738&Y@N,%C6G>M]JV!^.JCH,2ZZ"3RFGG$'?9(
M"QV15R0HFQ3)9?FJN9/Y+J8< 8B<<A%RKV;*.>)""F08UTA$#.]BF:PP&]70
M9O\^Q)SEZ*?9:\Z1KU))3##ZVRF_G2/4+[TLKY&A<9E-=4\FZ\Z4_R%O459O
MAO''2\G13B/;Z</)-N);BINO/-4R&M\2C/VY,XO\&K+=@@17@(O35$LA(I).
M8<09%BCW7<TICH$Z27$^2-D1N/QM:L? YH.3=S&7Q=VHVKW]R<\;-4RRB1Z6
M=31P=C 83<"?+)5#_NU/1G'Y_!HD*G+H%?SK?H"FL_'][</.N_<OW_WV/]6[
MEV_?O'M?O?WP;O_#SNOWU?LW%1B[[\&BK0BKWKRKB/@A_%B]>56]__>7U1D[
M^-0&WME]GS\FP)EK;J1TM_ZO1N-J<A"K?RP$L9I%JJL(B!:N,U_NB# VM]FV
MDB%,\YD00Q0RVA!$K8B:1J6"]5TAS-MV.B]GX?AS^+(=X!UT"$\YR%]#P9Z@
MDVC'* Y+7:W_F YCQ?#FDM9%<B>2IB8WS@,:ZQ"0IMXBF8@-&#N)<6?(_ZIN
MO!W\#]#[%;S3E$KQO(MZG85Y \/S*4++FW=+LI=N:X0OW6)2R2?.,47)9W?,
MYI/+0H!/YD <A" 81]Z9.Y8WL-M8\/J;3+PWF99@,KU_M_-Z?Z\UC'J;:9DV
MT^14%!=&4QJ/#JOS_R:C6]+M'NA6.-WR8<"Z/9Q>O:H'L0)I=W&\O21C!AM'
MM9(<L4!U[CDKD=,8(^)TU(0H$1V[+RB_;!-)\F1F<RF5\F"W(:8)5GVPK)A@
M6>=R_O51E-]-9)BSWB1PR;QV)'<-P<ABSQ 5/D9&([6.=B,R[^*GMN_\<)+/
MUG<J-M=._A:;:3DM\/T\+7"SVAOZK6Z,_K(VU3H,E;X\MGY2Y36M1JGZNLJ5
M;:K]H^AS)F"HZF%53YIJ]Z"-.5P>5NW19WU"]==,M;O]G@M3_9=LBT]R[O=E
M?&.GD]%B7?/H\OUA,OER-+ GH^G\DMFCP$W;PG]>7.]S%N91$[>;>&3'=A+/
MLT'[O8WV^3" \>+IG^NF=O4 $&Y[<8/%57!9."58^T#1/NTT;VJ1!]0F3CV[
MQY=^>C897QC9/(&KY8,O,$7DQM'^L=W^1/F-RW'CXLI?&->YU+&<'';6F<]O
M?([C24[;G=]GQE7?"O/9;\ZSM[9PSC5;<@[9>>&]7"]Z 9J/.(.P,@;THE+(
M8)$0CL)@233CO".]F _/C<&MM_.3BY.X.\MRWAV%>-'5;_(51^/1YWR?[L*6
M-Y+%%W%@<WFI&VC$9Y/P%-E&28^=U[G3EZ&(,\J18]@BQ2785M9&PN\=3IVQ
MS7M[O#=/M)^=MNS6';D1/W"%L.'&D&OCI6<YXGM8I1\'5.DR;;^;&70M!E6C
M<37*!6>KOT_'=1/J]OP,6'C7&!WWF?F6 @-LU=.OS\)Q2X7Q)SNL_]F^_K%,
MB%MK=MO;>K>UOU7-VY./?W+C9[^<1[;J]6CK<LKW9D_79H_E,BI'$-$DER^A
M NF06S0[34%]&:F[BJ#MA##.1W!GOWZKAY$\*-\QPS"N=NO/,/?=EC+5B_%U
MOO[##>_\?N_EBT6$YB8$@:*W#/$46-Z#XHAY8Z1R%NB^M,6B#[I8^U.X7P4+
M5E0LYO)5H81&&A)'Q'GP'$A4R!DE<N48+XWGBAC9Z:KD0U%OQN]'7Q[6&7@U
MCCF18JTD1AD+<A\4DMR&7#0V-S]RH"$,IY$QQ574G:Y-:TN]&;\%?PT,B\+<
MN5U@:AC/L+:]0W<EQSAK4@ /SLDH$/?>(<<Q08F">%/B+:!LIQSS=@0L,?B_
M]5'K_C\D.Q@NF.X=N<=C6<\Y*H?EC\8 /_61'53Q./II/DX(;Z=<&+SW:;JG
M/(AOE>7W&J\%_LB!Z2>>6_%UR^C?_J0I4<^;:A('\>@ OE0-VZC69@7L.YAF
MWJDL0 D ;HC;U0_+22/P/ 1,M4>&:X4X!EO.>2L0"9QP21)E_MY';;+1M@,S
MZ1+ENUX80:ZSMXL<]H]+RBZ)6%B)+06[D<$/DE0N2&L058QXPP0Q3MV7+7+I
MO,';S/EE9Y<HDPM>W\X?>^#MW0R8=]_@_?NTF=3II,0=WK/9M')+2K64@T97
M$."F'-@UP^WG&G!M*95JW.J+.(ZA.IJ.FVG.-9B,*KBB#182^H/[,=L\.5]O
MQT^V'RHX<#>6668!BK7>*F=LB^6D\%MOER_[B]]S>W)*K[/^CT_CG$>$YM*2
MVG\=^T/SE9A7;UD 6[40S6^-]OGE"\O[ZB_<WJJ_$F5/[SV_8G;K[SQ[/KHK
MG0)3A%-PLY3L>C)H,Z*B]0>SXB_7.EKKM*2/<<G&MO4P]D\.P7+ZX0:><;]@
M*UVP1=)A*V+QV!_8X2=X8UC!?>&=KX;"S<-7#P3>M^:,FR+HX^6<>_+*)=6Y
M;A+KZD6V)_SC(WPA)NRC1,$E)_Z?9[ZK0E7$2AZ90"JZE+-7.;*4,10HYX);
M&KFY=ZAJ[I&?$.I:6W>9BG[64PYN/?)_;%;@<5:?<Y'XZE_!)\4B'\6KVJJH
M7>UCK@7XE,!H-!!+C0S()FISEP2,'%4*Q60I\(N3WJ;[,MK<+)]9Y<ODLOW]
M]WL]!SV\K7_^,/3-7+6#>$V4_SM,&P(66$B%.,_HR  ='<42V: MIIQIZ^_-
MM MT?#GW2MHS;Q>R/[+/<J_$CQNZ24VP_UC"5LX=%FYFE.S:HWIB!]6L$]!M
M-TG/!L"OK1QQCWW3+D+@W9WQWQN&G \;*W=2^8/H_ZAR?PQP=6.;IIVCW>.O
MA^]^(#]6![:I4CV(H;*# 7R8:T?D\/D_IG4.GD]&E8OS"^">I_%SEK.>9U4"
MYE'T,\'W!3_GR'K^.%<)J,(T=V=I+P42^-A&40BMVD([3?4#W \XOVJFX)0W
M!Z-\ G!Q?'YR8"??COV+/3_*/,39E^=S^'&SLL-0_4!G<W0@/_"Y^SO,(%_?
M7@I?RJ.8WZ?M(],.HAVD;2:5P56P)\U6=55QAYLOXE4E&T40RDB,F D -HI@
MI+$!Y2@"Z$7!:7*VF]RAW>EX##.<E0?)NG)B)W<NL-,QW_Y/;)8./1T4^)@7
M=,O,\'HT?\FOWX#K\>=R_,ER"2)Y6$\F(,1Q *(Y'@VS?3,XJ2+8.B?57K89
M<E^6S[%Z82=V5B'B&WCZ>H^S>WWOIG E!\M_=N)X.IB=$]A'[ZL?LH91SRO*
MZ-;\BLE!W<"0[5$^>;QLL)H-^!2#8O/CUM( )DA-@N#@I&/1=I8S2/O<<HXE
M[6T43O&.$L#/K%5>JCG>E,&8:PDP/;[<#U] HFTU@+G%RGH/^)(WH4,K<>-L
M'5SZ;@4#0)=\T!P"+,$SQ@O]"3)S"!0YV<RF$-P,[(=,Q4_5I_'HR^1@\?$6
M6$:Q'5F(J1ZV=8':=,N<R$;Q\ZO&UWY,GB\NN_:"J\>WN#";0_.+KQCKXLIZ
M.$-/0AVB"P/OK%6W]5#Y$GU9@<YR)2C98D3?(>6!Y/C974H2T"TAZ0,^$&;(
ME7G !Y(M2=4]ZRYLW3(+_KH0^2Q?^KK($5QZS]SKKK8U[E/C^T92_-OE 'N[
M:%U/U6]ME9Y^]]QXNV#;]53LN?"!Z;?3HV+/CP71[WNH>%T^PAK:4-^Z2719
M%:R_M]$EI HZ$*1<)(@+:I'10B+%>-*16:_3O0\R?:V'.MX%K/DT&I]<LL_5
M7M2BD)]?M.0MK\L<_4[V=E<DUQVSSQ-$QI(I^$TWF>6M5+]4/;.OFH+[5T4S
M>\H^3MXLP13B7H EE!ART8 I1'CN>.,-8C8RQXCQT7:T%]^R]Z_3IA[&IEE.
MJXX..Y0]=C-\C:3WY>4;-V7*]'+INH(C!ZL"PR5U@OR>5XBE2((RI#.8\6@3
M,L98Q(.WB@0<@S'=0.&"H__:,O3NC)_/-V1+]7$,,/M!L]0$\IOU'BJ+4WH1
MZPG7$ZXGW'<(-[__7_X+QIG'VOQELP%$2QV?$KM-G:I'D@YRQVRLE99;Z3 7
M*WTGZRD7X[HT5:M.EV6!MKF?,53#49NZ.6UF&5,P]5F_V4M:JHW&[;,&)_GA
M7VIX-#RV&L)$1CEL\+ENVI#NT Y];0=Y_S]W3,@7-Q,[#'8<FBK7U*S#535B
MV _VQTN3G_K$O"X2\YJ#.!@L^*7Z ;B@39";]0'Z?OK9+%WV?V"LBZ58I&0O
M)876"TYBC ()I27B1"2DDQ)("<DY%9'X7+6UD[A ILF2;.".5_SFH8,G+AH[
M;;;GSO03C*J2FU5N'7P1 Z_KJ7W=>#KUA.92\*K-Y@8HG+?G%L1JK"B2G@3$
M.0B$\<HB2G"0)F)AY(6^)<8"MW/GD";:(<Z<1L9ACZCR49G@#=?RDJ,J[5'>
M_7R2=S\?V6W>3"<M:L/(-ZKIL)[=_L/']D!OLP'(X>M#D(V?-_9>OSHO.,/I
M(0JC"9I?LO$+H9O*D$TJR()I%_,L*A>\H+',J)RYV)\[8[TX67UZU/KTC/5F
M-?JZ8I<G"]^JJM_M3*;SAU_I%LVG7\-H"N;I/8W)=>W.=J=6=,NL.O?3LU!_
MSG[#3_![,9Y_MLKA>)L^3X-XC$(]GIEB.;EY>CA\'NKF:&!/MO.G%YRQ+0&>
M5W[^/!:-MXR"=^:Z8#&6]KL(C,KG1Z.90;D]COEDT.=X-HWWE(..'^A4]-D\
M<GP^]QL7N6P'I['_^6#KX0",-P1"/Y[GJY__ &@^>_O(?HJS#0)D$\Q]VPZ^
MV)-FGBY]EA_.N^EY?;]RR+F5UJT'7\:"MJBR=LN9J=[6G\OK"5]?Y+'GW_ Z
MCC>^%5)Q"<&+KB"P]'JW[]N#(: E=V=O-0^%[G=09'U%T2N.=.@M+>]P$D23
M+7&7LS5F2US_N.MZ*'11B>EF>['GRPKKW(KMNL#I81T"V%UWB9V>91NR17,1
MX[,#P&?XN:M. .N9?G$/&O<DO&TI'7IM+9TSLG*>)(^LA<5;L.3NUG+OX1#K
M041GJ9I\R6NX\^Y]M;=5+"IU3EI;'8QS\.A/8$%,/M8?3[<(/M;#6=P(3-JK
MER#SZ)65#$/T\Z:@V\#:<9P=GWDO@9NOR*N]USNO=_=V?JOV7K]Z\^[WG?=[
M;UZ?KH]]*-B[#M.^ LXR5ZU]^L-M$O? 5:K2WYO$PXJ4@%.7<><#M8PXQ2X@
MY>%'\A'( Y9P$T/^J\69?)#E#*2M$L=V%X/+_O#IX*I7IUNR;=_#PW..<H]N
M'8L-+1WFBO4HUP<:2W I2P#%*]#0V0$ 3OS8',0X^4Z]NY4AXJ^S 5;[[0"O
MV?>[:I1W89<>;7NT[='V(=#V[+0)VU+=T_V[ 'SV\8AN"6/^?/[Y]"%R%J\#
MZN;4'OPX.LIGL@O$ZJ\V:][H>=,.,Q=TZS%U6?+&>DSM,;7'U/MC:LZT'7\G
M>;003-UMAWD U^6:O[^-FAY;ER9WO,?6$K%U98>@>DB]':3FDMZ3D^(AM4VD
M/A@-X"%-+O%+U//J93OT'EJ7!:VBA]82H;4W6]<-8[UM#CZFXC%V%X99O1J,
MOO3FZM+D3?:8VF/J$]G,&HXFL?DX&5VWQ[]*8'R=QYB/3/=;_06@HRH='?N,
MIHL93;3/:)KA'7S%?IJ;?*%N_+1I )P^PKN#DZ9NBL"[WT_'./>BF^K%Z5#;
M]CH[\^%FB_ K^F5XG!6OR->\B\UTT.\?/10LDAX7UQ 768^+9S(]V2I1[V]3
M&-VD/>#9XM??<J&<Q1L9_P:C9IKK ^RXT70R;]=;O:N;/WI06]JF..Y!;?U
MC2\%U&Y3F:X81./9FYV,1X/FX]%XY&/("++B(%\[G!;BWIX.J8>P'L(>/X3=
MY^A@$6<'5XAK*T.L-^___>6[2\\(/G6<ZL\'/BITNL7YP.4WQ^G!;B5@]UO\
M9 <SNRQFBC0]V"W%*"O^!$L/>Y? WDYO@ZT&EG*4JWIE_60T[A&I1Z0>D2YL
M:_:6V$.$T^C'Z7!63CJ.8_A(5XF)'\Z,I-JW@UGEX%F^<2ZN/QW7DSK. FT?
MFK9@XMRNZZ-MRTN=(SV,KA^,RB=NUYT'.?DQ'A_4KEYM$8>7\S'T6/78L0IN
MDH?Q\P;=>'2X=2I9<Y'ZV!9U+D"NJKT\D%ZXEB9<A?A33T*X&GC73E:]M;U_
M.HI>K)8F5M>4J2BU.]Y2NPM<?NB,;!E,OSET1K9T/K[2T^1)TJ3O!7,.#,^>
MZ[JN><BM.D)UN(CDTO7KF\)\3^)NLZ[%B./:-(5IF]3=K:;W:MO&S"NP5_.Z
MW_<)G"]]K%<4);]9?QMR[Y;'[1K?O_;Q:FDXKV1=_7\73TT6O?;7'^E</AL4
MW@%J/_O'[P_JX1]PZ6:U-_27]SZ\FCCWZ'IZ#@CO60MWM62\Y#AQT9)Q=1'?
MU?1U+(8P/^P-J\G!:-K886@VJWCL8^Z=DSN$MMM_I_U"*V!/^^.3[8:YUAW3
M)-LR=VF91N[XM;M\AV_)!WO6 TZ+;?'E/*N$CG-=QAW/!QU7UHYK!87].J;B
M<JFV@F*(U^U#=+D)40@7+O=4T'],A[%B>+-S-ETW,I<I[#T5>_%?IOB_B#X>
M.K#K&>DA8#4'T7H#K< %ZPVT$A'ZV]Z^U[;V+81/EXOA%-/+RQ<O![N_LP@S
MT,*LT&4H$RYNHR5[N.CAH@.XN+R11 \7O3G8FX.].5@8OJ\;%RX7O7^8#NTT
MP#W#CROEU!(HW<M[+^\]%_94O+NQ=<59&0]6:?(/;&W=WP]<G^.R.TWS3=I-
M(:[T.C>*6]WFR*,L'K>"G8^>CKU ]P*][HSXV.E81!62]0>/3@VJW>EX#']5
MMC>L>APN'#]Z'%XO.O8"W3-B$8SXV.G8=:3J!C;4V;(&N?_II9-;%IB<.V&]
M9>AC:(C:-A;.AZ5R(^0J=YS_; ??'KN\D>0\Z%(\#ER_ 26'H\= Q_,L>W,"
M_FMY7%@&J'>* 3_5Q_F"5V/;UD!I3_B^^J@=<\8(@HC@%G$7+'+8$Y2$%EYS
M(F,P&U5[E^/)NUR0:O>C@,L,UAII;SCB)CADI4](6V^)8I@'Z3>JH3V$*4P;
M],G:H^V,0#O#D'^]_ H_.Y-=.QZ?P-C_TPZF<:.:#NO94SY\_+#_ NP@6#ZX
M"]NH0O3UH1TT/V\@>#4KR/#S1GT\V1Y.#U$8M76N\A4;O^A-(_!/S\[/]Y=>
M0#<>%--Z[=!KAUX[K+=VB-X&;2-!2EN,N!8&Z4 $$MA:)[C'QLEOM8,F7"BO
M#)*"@W:P.B'G'$6&<)PL(U[XL$KM0-@FT:Q7#TM2#UW'X7MW<06)$-[#^DR:
M:AQ]!&G,-25:[Q&NR/(R#^AO5L,X*0^=>QMA;>FX_@;JTS$-B&664PD^(V>(
M)_C+&<V1M?"34<*IL?=Q')MF4F\O@.C=*0YE*V&.0FVZUGR+L2/;@.%-Q7O;
MX%%*9J\6UI:.Z\]\3T8M*!X$DYHB%Y)#7&F!;' ^^X&.>)L(]O$^'N-*U (5
MFUSR7BV4XS+V.XR%N8QOQ_'(UJ&*QT>YZN:L,]MH<A#'E;]?%EAO&!1I&-SE
M&/NZ M0#LN<]JP,\;N/"A6@E4Q$IZBGB''X8#78#,=H8;IBR*76Q63D'LY<S
M+ /;XDT&LMGQH&XM"[ZIB2S,L+A;;81>MGO5LWH&[55/KWJ6HGIXBD(YI5"2
M"=0((PR9A#$B M0*CH1ZW<E.Z(.J'DUZU;->?F^76Z7M(U;F^)(M+=AC\'S?
MCR9VT#NYC]+2*(*.ZV9'/&$K03N3E#<)144"6 E&(XNSVM?8)VRBQ)AVX: N
MQ1[@FP*;P@R"7@#7E6@]^O?,]\30/WEF29(286E)]A$Q,E@*^.&,-$YR95P7
M/N)2T)]M"JI[]"_'U>NW. MS]-Z.1T= G9-V:S.?H3S*G2O[)-A>XQ<(.+W&
M?Y D6!6BU-HB3X)&7'&-7+(2"4VHX5I+0NZ5!/LU*CR#GK<#.YSL#,/+!?J\
MCET9 ,1L&B)Z ^ QRF.O#-:6CNO/?$]&&5@LE'2"(8Q9SDYQ'&FC)+(F.<6%
M$X*);K8(EZX,*-XDK+3-P<<CC_T9R?7W!M^ #-H)7%8-HFUBU<X<C1*:PHM^
M%[ W!$H$GMX0>!A#(&DKDLQIJA)QC1FRRBHDF&?,<.JM(UUXA:<0]%M&H'=Y
MMF_2AR:V\>&NW,)-V1^(?)SRV"N#M:7C^C/?DU$&2820F&3(,.< V(U!FD6&
M/)-2>QZ9<1="A'?Q"A]&&6C5[Q$6Y!7V>X2%>85_'8W"EWHP* ]P>VV_MG3L
MM?W::/O ,%.@Z9%2 2,>N43::(*HI9A1&\"98EVX?@N<Z:KN#=^DI'?S'J7L
M]<"_MG1<?^9[,L!/F5+,"HL8^&Z(4R:1HX&!\Q88-\+G & 7;EX/_.LD>_U&
MW_J[='O#B1U^JML:J'W9TU[/EXHUO9Y_"#V/$U'4,(^4=:#=*0_(.*F05-($
M)K!+T7?AX+VJ0;W'W^K/,7P%H-G!C^[2?!C9I+*T\C.]1*XKT7IUT#/?$U,'
MVEKOP<%#@/LYU4-E:"<*"1H-Q9)HR3O9W7L8=9 [8]!>'93C#/;[>X4Y@VTU
MICZ]\U'I_+Z<7%].[J'M!D:Y\=%RQ$A4B >:G<-$P6Y@R1(OQ27EY.Z4(OJU
M>MSKT=!WVRQCD[+2VBP^K0)RO;+IE4W/GKVRN6YOD@B2N!8H*:RSDYI;-06%
M+(\I""*IYQ>24NZ4@KI49:-E:0<2GY:R676UTI7ZKW1+J4=4K;1W8&]@4\SO
M_Y==^+(;UW_9;.RP04T<UVFMC0ZZ13-2A=$T[VD797:L;8_HNU'XR5@@GA@#
M%H=$1GAP=[$!)]8XC>"/1!GGC$?>75W4SAI%\TVE2ML>_2ZG/4*SH]=':^[C
M]NJF5S</?0I#*)V,-D@$'1"GD2 =A47449<W:J71]VI"N21U(S>5*2T7]ZFI
MFZXW:2_E[QNXOFNNQ3H5\M]JZ^I!/:GG;27W)R/_Q\%H (S9_-N?-"7J>96+
M8$U.;BTK:T[F)1L+L(KYHY\WZ,9#$+ ,_;0: ZRG8WET[ 6Z9\0B&/&QT['K
MK87>Z+J_T35O+U$-OAI?/1CW8%PNB/1@O%YT[ 6Z9\0B&/&QT[$_=[#^:1L[
MWL/Z3)KJR)Y8-XBKWH!X"G#^9$XWK>TV6*E8_A '"(@*@<6$F% ><24<LM8"
M@'O"DDF<)=)-1L4<>-[.<*?;IH-LD_&^GFB?.=&K@Y+HV*N#]5,'7OL0*&<(
M:PG0+A1&EFN"G ,U@:UC*:9.,AZ6JPXX[X^?%Y39T-<B*\\-'$]CJ.+Q41PV
M\W2(47LFW7<0K^^M@MXJ>+PFZ9,Q!FQ*QE@P!GS"#'%,(S+YA+F5%B<:0L*8
M=N0;9C0ZDYZU,PSM(< S;W5D&ZA-(DK+C>SE<EV)UBN%GOF>F%+PRGMO-$:2
MJ@3>GA?(,!61PD$0Q[#TH9,"U0^I% C>I*2T UJ/1S#[C</U]QA_JX>Q&J7*
MCV.H^ZK5O?(O#&-ZY?\0RE^HP+"G'-1WD(A[1I##SB(1=112B122Z\(CS&C3
MO$F[+=AT&QSFFT"=7M4_1C'L=<#:TG']F>_)Z "3:+0L1F2$C8ASS)$UT2,M
MG<?1,1LC[L(!['7 FHIAOT&X_N[>BY@B2%RHQO%S'$[C9M4<C,83!+AV6![V
M]HJ_+R%:C&G0EQ#];KHI%S&1A().8 BP&) V0B">$K?12>OIA8HJ=W$@=^$.
M^<G_54\.=J<-S/]KW/BDXVPCO<F5*<R:>%HE17OETRN?GCU[Y7.-\HG<8LX]
M1U)+"XJ$@>?*C4;)4VL,Q2Y*T87G^L#*!_?UK-?,W>UR=[-]Q,K\7;*EQ2.J
M9]TGOSY:@Z,(.JZ;.?&$C06A&-$B8H19!/]4L8B<C0D)19A,G!IN+G1DO-M6
MYRG4=&L:"+II=!_E?I12V*N M:7C^C/?DU$!5(&9GGA @3*,N#>@ G2@2%&E
ML4E,6G6AN=[==CJ7I0+D)A:EA28?CQ2N8*/S,6J6)6]<#D:9?OV^9:_&BP.0
M7HT_R)XCX])2$A!.BB >.7AE20A$>4Y9$L)S[9>^Y]AY(T,!JKVTP&\OF>M*
MM%XM],SWQ-2""YI+KC02-JL%HL!)"P;40@J&QY"<E9WDL3ZT6M"LKWU3D,=W
MW[V^.PD\?+G8A5B.NS>QQZ>[=K=OW].K]%ZE]RI][56Z2DQ&+BP2*2G$-<E[
M=IP@331F5K&D1"?'$Q>HLS?TH,W?V^,S$=S7L2M53C:9ZJN:/DJ)[-7!U72<
M3:A8.I;)?+<AVI-1!YR;A*.*B)C($*>>(..(0UA$8JD(Q-@+M:WOXN$]F#J0
MJPGX/06)[/?RRG/NWAS%L9W 9=4@VB:>S<K<K(9QTM:CF6=L'HW&61YZ5;].
MJKX_'M(?#RG'7" A8:9R!#B&A'A4&#E!!3+<>16<44EULD]X"FN_951;7BA8
M\])*VCVM@R&]VNG53L^>O=JY1NU(@56(3B$G(Z@=RE3NP$11,(HP8RSEN)-]
MR(=2.V23%-=]XVDIGE6?2%QI!1ZZI=0C.I'8GT2\J9$QO_]?=N'+;ES_9;.Q
MPP8U<5RG-;-"BB#TNMD83]B"4(I+3PBXGI%:Q$E*R&!%D#7"@!>;(A$7ZAK<
M\ZAB1[:"Q)M4B,*,A5[\UI5HC\ #+8*.Z\]\3P;[(V44>X51BE@"]E.)C&9@
MUUL/*R.D,+J3FC9+P'Z^R0SOL;\<)_"[&YJ7<N\-/,,U78OS*P)NA$?U,3J
MP<;A]JN/A&H*$J<1-5HAKC!!QFJ&A C<)^$(Y^K;9;UP$V5)P%0XY 0!V=5<
M("V\AI%C0RS88%'XI4+*[NCPL)X<PHM9!\C\"7PI#CV(>?7#Z]$D5H3]>,I?
ME_ZZJ9RN*2,\D&T!ZYH_^GF#;CP$ <O0CZNQUWHZED?'7J![1BR"$1\[';O>
M&WAB9N%2S+#]R<C_<3 :A#AN_NU/FA+UO(K_F-[E(-.:D[7'Y'7"DAZ3UXN.
MO4#WC%@$(SYV.O8=D-8__2+'QD;YUF";;5?_NECGAS["I AV 6,4@]2(6TJ1
M2X0@0I+T22FO+W;;OEOMHCS;UA!]:\=OQOL3.XGA/^U@&M_&\?Z!'<=OP_ZC
MP< N/OD:]M][_>J:N/\5^QB26V&E19%3@3B-!EDN8.0Z:"UM]))U5(WCP2:*
MMS"^;&_[B@V/I7'6#*B.[+CZG*?YO%H1+V-F5*+<(:\-\'(DL,32<>0P,'>,
MQFC<247E,TO<KEJS,YT<C,8 /^'<TC;MAUTPKPXR207SP3)$Q(E12%.KD<=2
M>F!1PMR%F=V3>3N?F< X=T6\HC/B:GAV-H_*GL[R^4]N_&S^X=F?*^)HHJDC
MVA-DO::(.^J0HRD@Z@'%/*PK560I'+W7--.E<;/S1,)0#(H">\2#E\CQ&%!2
M-H"H4H[%<F;U9CII)G:8#8U[3XW03:7UIF27'9E=#3?G';85,:H61K,4)6+M
MT2:3'#+&.T24$I8$>(-T<A+Z81G5:"6Q4P&%I!CB8 X!TV&!&#&:RL"9\,N9
M5<>,*AG?Y+H<4V$.NW6[=NW&\.CKA"O;5*/4XO!_3(>Q8GBSHIB*]KH7T<=#
M%\<5(^V[?+.".QU%&/[G..CK,JU5DMI3./;?%^)X"/63/57!P" 6":"6<XM!
M_5B"9/(T4&H2^'P=6Q2M1]=9IEI?=N,QRE\/_FM+Q_5GOB<#_DPJ)P78V3$*
MGWT/CDS $E$CI8F>)V-HQU9Z#_YK(7\K/J?:;Y-T(/,[,.$L%'90'=DZP&0J
M;X_JB1WTSMXZZ?O"Z5BFOE^_/>^'"(H;(QV6"8'^5HA[29$V ;2XEBP(+QE-
M%W;R[N+L?46>MP \>\/=&>R<,0.Z*FBAV:8B?1NU1RF6O4Y86SJN/_,]&9T@
M6 K:VH@$5Q)QA\%Z]]8@ ?H@2)F(EA>V%._B SZ<3E!J$].^_U9!KF&?05>:
M:^C]]' ZR/E5(%JI]O6D/ CN]?_:TK'7_P7J_Q]6E>%BJ-*Y_)'A-D>950!#
M(<&/J"@VA*9+,ESNXG6^BQ-;#V-X:=NA-F= [L4,XVYN832P)/#7=:8&UIL&
MEU91L0@$.,]7-V>A'\N#@EX/K2T=>SW4ZZ&O>HA3XBG7H'@BZ!3I)#*,4&09
M5>  XR@N)L_>Q=-=A1[BF]3T#<F6KH?Z;=''Y?N.)@=Q#")_"/<YB,.F_ARK
MP:CIZ_D^$B.D;QK0-PUX?(:,T#(R12PB7$;$0\QGFUA$R5E#!#8XN4YZJ9Y!
MRC<9*'?/XN2LH]YO ):OX^1->F^/N[9JF+SLN%NA<%)6KX+>^^X57Z_X>L7W
MV!1?T)0; XI/,8*XT S9(!P2&@>M<:1.L4[VJE>L^'1IKOP357PKWNKNN_5T
M@B6S;CU-=Y7\>INGMWEZF^>)V3Q7%('2PBB?P+K /N]MLP .MLAIU2FXI!)-
MNA-7_&P=TI<M:G64+:?XIB@N66YMS(UUD^4BB-:KFIX]>U5S^W9"WEOGI$(L
MD8@XJ EDB<"(!L&-P#9%TXGSNSQ50S>9*>VLSM-2-7W[V<?CT)YI/]L6>.H=
MW*=E== MFL$JC*9N$,NR.^X:A?O757/JW2C\=$P0(JC@.")*L4-<*X>T"/ R
M!*>)3M8;WW$WVYUA6)I!0AC?5$H6;9%\PX./T";I%5&OB'I%U"NB6Z5R.^ZC
ML@*1: /BT29DO1)(14^%$MX;G#INK;M<120WE6&](BK#.88_+$SR1M.@\/*.
M$_DJHC=3#U^?_[T'WH<4JYCO3='B%K-O[[R=JPO4_A;TV(^QLCXG@]OA"5Q=
M#4<3N/EDE($DQ&$3VS:\;72HS1Y/]= .?=UN+L,;;;/>K7.L%>K/F:-^@M^+
M^?ZSC3T<;]/G:1"/4:C'L17V;2#$]'#X/-3-T<">;.=/+TCEE@#YRN.?QVSP
MEE'PSM^GS:1.)XNYM-]%<1B>'XV:MNC"]C@.;"[T#$)]G$F9B7$JW\?+%MGY
MRI\[3;!X-<>-!V"+&S$!O73]#DZ#9?-1U\-!/8013>QXLFVGD]'S\Q\ \6=O
M']E/<18W0S8!$;;MX(L]:9YO//N6,<YA>;O07UGEW))KDDW9,E:V!>/;K.LJ
MX>V<./J!;9J\GO#U^9?:W_GHUGCC6VD5EQ#\883FCG+Q9<8M#JR5Y9!W/P>)
MWQ_4PS_@TLUJ;^BW;JE*Y/U526L.GJ+SQ[/H_/$K)G\<'<6QG91*R=U3[;)[
M5KOLWR?)<NF#/B5N-4K5FY:^(!S-+5G@L0K'#WO#:G(PFC9V&)K-*A[[F/>5
M<O.&-E8/])J_@K6V/Q:]TE6_IK,U_3"TTP"/#S^NEB(K5*&M=]0Z1Y=ML+4&
MS]SVR,/+]X?YY,L1F+2CZ?R2V:,(QEOXSXOK?6[E=M3$[28>60"3>-Z.:+^W
M<6'K\G/=U*V#?K*]N,%E>Y*S!W*SI<2?S]I)"[W?&DK/KOH>V<+\+E^[PW?,
MEJ#T@9[53ZN?U@-/ZWOI!_KVZ?1W:G"_A<F9G8![UWB?W>Z2\-0E>D&O2"TL
M;5]A*;1<+NU6V0E;7MX)^[Y4O'767#D\>V?C[F9Y,@?C&*O?X?5!4[T$)RM4
MB[YH#\OG=T@R*V>->ESI<:7'E7.AK_JX1Y5B4:4W,M=RV7IET(TRH/=1!AT>
MS2B'9Y>K#'*#W64P=*='%LI9C&(!Y,99@SV ] #2,8#P'D#6'T!Z"Z0'D-X"
MZ0&DMT!Z %D[ .DMD!( Y*&/9\]HNMQ#5M\#J_4Y<OTN?H[#:;QE8?!'3=^5
MZ=%E-BDHA%MO3L9;GE1[.(Y\,F?1!&/)8LQ0,,DBCAE%#@N&C'(L!1.3E1?J
ML@BA)$G.(>QS2RRI#++2>42)HXZ1H*EF%]N*M!#T:CPZW(6;Y4'\5STYV)TV
M0(HX?GGL!].\##M-$^%_X5:%2;][/(V*3:WO6[CE$<ON0X/>XQ;97J_T>J5X
M)GT O<*D%UIJC' ('''M93ZO')$*$A1.M,:0"Z4EC=>2^FA1,CH@SC1\QPL,
MNLCXZ!13R8J"](K<-/?N\?"(9?>QZ)7>.5ES:O9*9%V5B"?,4,$""MH)<#2T
M0CI0C1(//%HB_A][W]K<QI%D^U<0WO7.3 224^^'-'LC9%G>T,:,I9 TLQ\G
MZFEB%@)H-"!+^^MO=9.41$*22; !5#=R'Q8? -&=?>J<S,JL3!6XOBTB23 A
MH\[@6-LH0RH)E@L#,I'R4Z**AMAZ1$2**>,/G9<PXK4[%A&I8\FBKJ"N5 _2
M ^B*ULX;DPAX4<(+$5,JNI(4..YUI)YKDLQM7:':2L9# "6Y+L$)2>!\B56B
MY#*)Z +1KB)=8=-R%Z@KM?4C/E:Q=OU/I-=E_W39K'?*=@W?C@,O<ZA8F,92
M>H/61&OBJJ_$LFC-05H3A1U!61THT9IH35SUE5@6K3GHLN+/YRSM?^[3ME-Q
MHROMF65CF/S4[LJT#3=76(Y<#1GA[BYF#8^?D#&$*D^$@F1#!F%L &LI ^6"
M-H8+[J7HHPJY9: 7^;^6R]A-Q$BK=[.0FM?+>>QK%@:;$HGY?%R9 W>Z$)N(
MS>I5PP6E4F0.@K02!,\*G \.*"O<;Z0G(6R5A^U28[Q_U2!3;1XZQAY79O4K
M$P.+@5MS+$ \&8D@,C E0@0ELP;A!05OF( 0F0E$>BVT[*.">.\2P7@/PUYQ
M9>+*Q, "L3EH;!Y -6@6*GK&P3I-0"@GP"<J@9;H@$@N&-D^O+A+??#^58-.
MB62H&H,J \8$U;$25,_?7KC9JAT,UZ:I+E;MY+WUAV[F6?IU,[MH?U,K.6-L
M^4UK?KV_Y8Z-U8;*5ON :N_&/1E/(RF:N7$26#L%7F3>QJ?. HG4*VJ(279K
M"_,^B:^F6<\>?:*U%_GE%:D5?^/9-:7UY&SPHX6G.^'OVZWZ<'D//$P8DCCU
MWO43T7N8EJKC%B<9!<NJ:$Q(IA4GH< %$T!;RZRA-L<0'I)?.Z0X45+AYBFJ
M$\9)*$4(592BW^W8H+16@0C(A*0B19J#DTR#CE32:"4GS#XDCW=(*=(<E>C$
MEG?%BQ?%"=&+XO2P(A/!F&8A NO2A98P,"50 INMH$3RS,B#V@D==!.OQNKU
MDU.GXY]YZS[EF#E%>F8D'T-2\<UR[>9E]>_8D0AC8G0[:J$E=#MJ<CMRLCE;
M14!K76)BDCSXMFB)1<4B%9I0KOH[-'?5R[#'<W)6H*=Q8DNZX@6+@H3H14%Z
MD" I[:BWWH'DWH)@/H')H2@,\X328(FF6YNTNY_'ZUF0R-08C8)T8DNZ%M.A
M^B!447T>J#Y2:1\32$%+:,."*:&-)1 Y(8JJE".+_1WUZU=]&)\:4>&,0E0?
M#(=0D!"]*$@["%*,)1@JX0UP[@T(IP,8GC-8(\K_*&)-VMJ?V_T48<^"1*>"
M5C@_Y.0$Z3B'"T<:9?6ZZ/]KM6R:]I!@^7$%;%R+C<?A.-1BS0&Z!:<M^HXQ
M9W7DH'DN$24M8:4C1( J5B$\!VOSUA[H+DFYCGU>=N33UPXHGQ;GHS[)QZ4X
MQJ6(,H'8K!6;AY")Y!53E *1IE"^-AZLEQ28DS[)G#PAN8]4V1YD0DU)C2<8
M<"D.WG2H"0C$$]8$[EPV4C PP9;0093_N*0H9,Z8)CD19E,?":S^-8&3*3<5
MIJ]P*8YQ*:),(#9KQ>8ANG(0J7+B#!)/ILB$:\?8>P\Z>)8D2T[8K9;&NZ25
M]B(35E685!K54NS[Z!@.I>]K.4\J&!8XOJ@.)UCB!$NTYJE9$U<]XA2MB<*.
MH*P9E&A-M":N^DHLB];LR9I]E^3B#DM?.RPO+M+*K<O+)NG]15HTNXV8'[Y1
MD:.'QRK(T6C-JJV)JQYQBM9$84=0U@Q*M"9:$U=])99%:QYORZ7G?L@X8K6?
M+9K7;EZNI9VH6J[B?U.[65-K1>'X_#NLI\/2UII+6YT),CE&(,6003#'P2H7
MP6J:F%4JI;9,]>&'IU^G^;Q<XI-%_-LU"3V[W##NJ=)5327#H]2X, ?N=B$V
M$9O5BT;FP<=(-2A&*0@?BK_O1(;LK62$BFP"[>,H]=Y%0T\Y8R@:8U^8&%8,
MW)IC >+I*(2D07'E(8:80)BLP$@AP&N9*7'*)NK[.%B]=X5H6S29"J>FX,H<
MX\I$U4!LUHK-0ZB&5>W($@,I%L$0,3-PU!#P*27AE>/2;ZG&+N>L]Z\:8BHX
MJD9UQZY[Z-.+&:K^V>!5:I);A?,N2173NS1?=@-V:R5DC"<';DWT# ;F&6BO
ME+::@K6&E]B0)O!>>%!6<&<4LS1N->K:)4UUS43%-?CQ$P_UZQR4B%(H] UP
M;6)$B=@\96P>I+Q!2>%$*L&D=2 \EV"="*"9,"54=$*;7IK^'D8WA#*H&V-?
MFQA<#-R:8P'BR8A$H,+29 -0H]L:.&+ V^# )>:3)\SD?I)5AQ )/364HDC@
MVL3@ K%YRM@\Q+1)YXW/3@.AJ=V4\KP$%\&"#<QXHG..;*L,;I=TU6%TH^@<
MZD9M"2L\4E5EPNJ_TB*MW+S+5[E87C5KUFT;G'>I5E+&J'+@UD3O8&#>@5+6
MI20D*-T6R:<<BF,0!61I&'.">R&VA@;L-);RDHN*<_#D!A/U?;RJ7 WZ![@Z
M,:Y$;)XR-@^@'$8[&Y*6)2CT$@2E$1RW#(0KJN"IU3;S7B95'D0YY-08G$ S
M^M6) <; K3D6()Z,3 A)J-/4@S&V/6,5&=BL*23-=%8V6KX=8.PTO/(@,D'9
MU K,7.'RQ @#L7G2V#R =%!30H+, ^1L2H1AO !#BR $$FUF6ELB8B\#+0\E
M'9IBB%%=\@I/6U69O'IZ[A:_I,EL,<ENMIJ\<_--FBQSM]S+F\N+VB^;6>PF
M.RP7M;(U1IS?M.;E/7W)FKZLO[3Z^).SLK FS7(^BY-KA-5B[VH=B]Z-.T+7
MXS_^S3#*JH;[I4(1CH#?G9L'#?@A$7KOCP#Q/7I\]TKH?[Q^&H?>Z$S9^*0R
MN.!T>XA+@3.4@K2&AQRMM7JK/O\^^;"F6<\>_51\X7^TKO"3^*]-LVXK+%_D
MIQ]=XJ>?>\1WCUN;\F3*5[^7(I,5]@H9DFS>!.'=\?:G"OBE%AL.20HQML'8
M!F.;@9%TM8 ?9)9@2'2-D0M&+B<9N40IB0FD!" LE<@E\O90L660E*8\66G+
M;Q^29\/(9>BBV&_D<OP39MVG'#-+1\^,Y&-(T[U9KMU\LNQEOCJ&K.@#H0]T
MVC[05QHK1BIX+GY)2,&!T#& EYF C2ZYXKHX;;;.&NQR2NW%-8]=E?XT?=7^
MJ*GF%1Y<'Y(/@LL:0W>4+<3W@&2+Q,*@25FP5-,26'=C*ZV&E(G@041%8R]]
M'?<H6Y16V 0890L#)U0@A"HJT.\ID$\^J.0I:$<U"!DY."$R>&.9%2P0P[<4
M:)?3=_M2("ZFDJ,"G=JRKGC1HB@A>E&4'B1*7!3M(52"BFV_$-XVHS3<@TA,
M"TV=,X;T<:YO;Z+$IXKB;M[QE_5Q3ON---KJ=>%_7'J3^;+!9""Z#X/F&70?
M3JL@RA,;0]#%NS E5A9)M\X&*;X'24DX0K1G6P51#THW/E^$Y=OTUT*5?9<^
MM?UJ.+HJ]10_52![=3 %*B$J(2IAY4JH*!$I2@M&9P<E;E?@9'"@!$^!2I:S
M5+UF,/>GA"B#*(/'MB%J'FH>:E[EFF><+\%<$3DIN2WZ1258P31(%FC6BC ;
MMMK./2AGND?-FU)1X3P$E#V,_E )40E1">M60IJ2X8QF$-9X$(3RHFJV!';*
M"<XLUUYO]>Y^4*)VG_N@2F+*MB(E[/L0Z!<7P-T2NL./*_O-W:[/T^KZ(.=T
MLDCK79;)\(VZ9Q>E/+/V5__Y'?ON<&8<H3BV5')T>-9AUZ,YU6A-7/^X_H]N
MU[&L?Q3[$8$2%SLN]I.W)JY_7/^#02P.T1G+$)WG+3I3LW[P;@[68U2<A:K%
MF@/,,57,[Z/(($FBK)92@Q9)@O"9@A5!0'*:<4M"3&GKJ-\NE?371'>90+HZ
M[_?S<O&Q,>'/:=U[2@F'^6'5Q%A\OE,$*>H5ZM7MH^F,M05^#C3W#H2P 9PW
MJJB0]<YGQY5,?=2['T.O%,XM/QV]PF!JX-9$<4)QNMU.D@I&4F00=.(@LI!@
M5%:@/0V91>9\ZJ69US'$B3,4IY,1ISHX ?4*]:I6;(Y"KYS.TB9#P5!> B,1
M*#@7"/"<HF<A^R1-'^7CQ] K:BH\3EP+%]1=*8[IR&%7EF/X7+$[@B?B\$3<
MB%T:31/Q)?(&8BP!X5D"RYR&S&QTFJI Z-:)N)TZ@[5,^;D+<\.WZ=N9T17N
M#)_NR;@*Y*\.QD!%1$5$1:Q<$0W524<:@"O)0#CGP(GD@2<KE%?E=\;UTB'L
MH(HH*$X,1DG$B!#U#_4/]>];^A>I5L:3!-+GMD[(,3"2*J!.M]6M01C->ND6
M=E#]8]RB_J'^54<9*(DHB2B)E4MBB0BE=UQ!T%UXIRV82"6XZ*PO$9XV9*N!
MYDYMPPX;$NH*2Y1.5Q*/?TBU^Y1CIH7IF9%\#'GA-\NUFT^6F!W&O8!:[(V.
M#SH^]R]XHYSQXMZ <Z8X,<4+*HY/%L"H$]19):SK)3M\,)_'8F*X(I>G N6K
M@RQ0#%$,40PK%T,>N9&,! A>&1">,[ R&PA&<,6MCKF?H[0'W "0J(:HAA@'
MHO2A]*'T?:M*6&FN5) 0 G<@LHM@>$Z0 TF"<:%]WIH?O$M.^'#I8*P01NFK
MD"U0#5$-40TK5\.4;?1$*B@JDMM.2@&\*X&@IL;G*%@TM)=CP =30R4Q$*Q(
M#8]S/GBD\66O?- .<IOX5!93FLRZ%3E9N_>IJ4 6:K'W.#R86JPY0/\$O8\]
M=R#..ND4*6A%2EQM@@,7:0+&A%>!<9VR[J<#\?7HRI]6R[=/R]^;+3;EFJ]F
M6RX7S0\=$5Z^[DU+@\_>KU>N*,YLX58?GJ_3VZ:X,.V5K);S>>?$7/8UZ;W7
MUI3P"H\WU4(B&*MCK%X]2%'I4.EN*UVD43CC0 =BBVH%"EXF"YII)5,)@FCB
M_?0N'HS225KAS.=:*&1T.H?AV\"MB:*&HG:[YS'/DF>BVK1H A%I"=^2")"E
ML3H+QWS:JB+:K>?Q8$1-3 7*V@G)6AUL@DJ'2E<K-D>A=$6QA/"$ 9.6%:5K
M1\]0Z<&[J!C)/%EC^^F6/!BEXU-.L<URO6E4G/I:9=KUY6KY;M:TS%)6%R9>
MAQ^Y7]X3EH[M!:J]&W>$/M%7^GPXGADE$2)/IG@L@H GP4'224:6571V:Q[1
M[JG5XHE<U7/]D!:I7-_=O8UO.AE&'<O#V EYU15S5;NP!QG*#$F6L*(9*YHK
ME"7/1(R),R""RK;>.(,544(0*3,I>$AZ:^;X[GG0?<D2J[%$!W4)8R,4(80J
MBM#OB9 (5%M>M$2S5H2\$>"\U^"H#2YIH93=:@6T>]YR7R)$CQ<<H0C5)$)U
MK%O4)40OZM*#="F0;&46$21-16.XXV")IB"RY]8(6_[;8Y9Q7[I45!%UZ>@K
M&P]>UIH!_#FM)_-E@_F^<?L.[(RU)!.7&S]/U7D/NY8G_'L%J-W9SB-T)(XV
M1H"8[(4,8!7S((QEY2OB0&>I0\IE/8:M\RP[==--ZT\U4?V7,%%&:O=5;N&[
M.F\%2WHQG$9)1$D\>4G,V=,B?"5V<E2!2$7HO)$"F N,\ZBDY%L5-SOUU-VG
M)&I9_2 =%$0,"%']:D$MJA^J7ZM^3' =N-%@2"A*QJP!RS*%((P,3/H8\];>
M]4YM=?>I?F*J2/65/:A_&!"B)%8,9)1$E,16$I7,G!$=( 5G0>@0P-"@@,LH
MN;!>>[[5W6ZGWKK[W2-5JOK^\J<EB<<Y##K22',OJ=W)12H/YMRMTG3B73,+
M$[>(DSB;;]8I5J .M1@??9JA,!'Z-.C3M#Y-%(HY)S.8$$Q[?D>##]P"H8Q2
MZ=H=[*WQ\;OD?9^Y[A*;EVGUNN71'UH6O>W;+.=S=_GKCUX.^=S+87=U<KZ2
MXP[*1L8X..$YB*P26$\=F,RSC=0+Q;<F!?5QKS]>ZL3>[I:<L2]M<J"+5X^+
M5X$[4 =IHH<P%""CAX >0I<&9Y(K10-HYAT(0S@8SLJW/"6M-,UNNU76+FGP
M&CP$T1Y;5DH7C6^G)R69P$GGP#G*LR2)&;>UP]/'O>[?0R!?.EN&'@)Z"+AA
M@.X N@/H#MRY+H +11G5H"RW(%QT8*V+X"R+3.G OW"F;9>Z@"K<@5P47Q$"
MVJ<2_)-RUXXE"S$0J8KLD[B]8=#'O>[?'>#H#M1"K-6Z W60)GH(0P$R>@CH
M(70> FN[4Q(&4N>BFHDQ,$%QH)2+K"5WA-$^RB1J\!!2(,9J3D$RS4'$X@UY
MQ0(D:R)S2@9JMR9F]'&O!T@I6/00*B%6G,0\K*J1_^D>0BHQ4;&#^R5=5HXT
MDTV3XF2V*'3P]F+3#DZ?++"^9+3;19?W5+,UJ^TX=$_3C=!W^TJQ1E)4$*,@
M6Q%!T.)W>,XC:!$32X)JUD^QQC6!/;GDKY\W;WU:O<A73D?G7S0O-NMF75BJ
MW,H-+^22ZSYW.LA.GI4U2A!J:'D\K'A)RG.PSB:0Q9<DV62M@]GCO6[=Y+9W
M>?\[I6RJR_]3^Z4"W-K:HB-+C9&E4$$1F[5B\Q!SOX*WI!,4V>Y-1.O T$S
M4Q82*^$ZB[T4,QQ25;[B*[#HA L<M-3E=@5EX#)/H!7G/@F1<Q1[O-,]^0JM
M@EHVM5_L:H *.C"6PH 3@5@%$%$NOR(BTCHO3(;L4SLF4RIP)"I@1B47K35Y
M.PC;)0%^?+ETBFF>M 276'$,<BSA)L\"DDC*6^:%(UM)BQ[O=']RJ0R9EDM#
MN426PH 3L8G8/*R"&DX<(<8#XR2#<"6:<HJ3$H8QH3*E,?I>$L3'5U!6W &6
MO(,@8PD> Z-@HX_@J#.J!-:YVWS=VYWN,> T=&KIE_K*HH(>HN%]^<+Y>:HI
M^/OTV=_ZN(>8X0[WRG[GX[]QMY\X=Q<ZO,?==W_YT6Q=/C;<PQZO4YJXT.;)
MW>)#ERA?KLL?7R];_HCMB(O8?M4-?'!EU4_R;.$68>;FY5[*#]Z6/].<W8!5
MG+UKT?27\N_U_?Y?-WG\_2/V.,_3>XBS5>H6\J-BB,W;Q>,X:R[F[L.C]K=;
MR^U,EK757O]5R04YL[K\Y%^;9CW+'Z[OI7LOI$5\?+%L9MT?7Z6Y6\_>I<=^
M^;XU96N,CW4L[_>]7*^>_-4K+BGF^KLKVC@ +.X$ O[%YW?^L=;EZJIGB_EL
M4:YH[5;K1VZS7CZ^^8MB_,L?7Q2UN"Q[ 9>+$1ZY^6_N0_/XNS_?!L9-GFX?
M]">HW'CDIB782IYLQV#W>:['I+<;RS',7=.TS[.\_>I-W;_E^[3Z[O9JE5\P
M^&$6S8[KXK=+M/CE/.['O*_;&J\WY[/%_Y:73B?/%^'LGE*B'BXEG1?XD9W_
M^3D[__,3)_^SY?15JM623S^JR]//U>5U>_T/J:;=^X5WQITL<[GNUK[GY2;*
MNIC\]=98FA->)']\OIBLSY>;IH0%S9_0*)=&^?O";6+Y^'ADBQQ1B[H0HXLP
M;CD6G8AVGL.5B+>7U_[]<C_MRZ'XALO-U4LN/XJ2$G1]?_WZT)9C7S3I49,N
MW*I0R$U![M[WW58)[[M9,_.S^6S]X='U'_A2;>[E!PIRIC7[_G./XUI!.Y?C
MSU][(SU3:I>W[?(>>J:I.=2''?"^BLLO\;[POKY=BV_NW\#QBVQXM_K\_>W3
M7N^0?$$<S)&T8<\;X0?9B.O+=D>H7BA0;G_UG]^I[_9BQ8>/EST:9G?V\.[T
M8-Z<KU*:_*U\?]Y,GI60)4[^>[-($TZFA\7YSE-8:WA& ^25 :\(Y*)Q<M'K
MV7MDHFK7QG <T]V;4XSPL1W6EN-U3-E#Q&"GX?.G+0:,,'E80"/O(X$@@8R)
M0 02"!(($@@2"'H@2"!(($@@Z(&<)(%@?[,>V6HO4_'PG/CQ=;37=HJU6'/(
M'6A/Y;C;T8;PDBRCTQ&H4 Z$"Q2\3@%8\MK9=BAO='WT!=OS$%[*OG2@#-?_
M@]8_ME(?S5'L\8(416K\(F698L8["\EE"<)&#CY;"3S;H+)6TD;51_.MO8J4
M_F*3+5S]*%$H4>,&*4K4^"5*!DZ)DAR2(+I(E%!@G/;@J3&<.2Y3R'TTO-JK
M1(FI(E\:?8WK'T4*16K<($61&K](<>-B4%Q==FH6I'QE!7% J:>:4^5L)GWT
ME-KS9I]27VKXC^M_#R*U0]9P(!7O1W\T#USA+];G:34)-_I3M%G$1]66CPPY
M8[CO^I&*E6\L-4UH35SBN,1'#4JT)BYQ7.*C!B5:$Y<X+O%1@W+LUCQ.)79W
MOVW+U\7ZD2P?<NC*X1NM=,\L^_[&%9';W0D'L0?S]-PM?DGM#.J\7)4'N)B$
MS6J5%N'#9+URBZ9MI[M<3%QLVUBW/46GW8CJ99ZLW?N$!=\5<%>O P-V/ 4T
MU)$"AQU\\O C5F-)'WUE8(@)B44=@,1$05"7P%%CVPE<EDBE&!6ZCTKN;N/Y
M1E_D3[F>GRYI\.D5"[YI2?#R(I\LXIM/E/CD(R/^G-8O\AOW_NY9HF\FAXY6
M8K>'5DI("T,:TH(*AE!%!7O86:3D54R& DFD+4_P&8S.!)Q5E'"I2+2LCS+O
MJA6,HH2=&B_48CJ4,(0J2MB#)(RFH%.2'JQIR^R"4F!\B<24%RHID;0,HH\R
M\*HEC!F4L!/CA5I,AQ*&4$4)J[P,W6M/"-,)I/4ESN,Q0/G[!DQ2U!;-\T:%
M/LK0CRV2=SQTA6(YWGIW[)+56ZYUJ](=TZ>#='ONVKF/G;&6=^)RT\X2K,WQ
M&?(QNYWMC#Y0?]E:38F,G$*.NNV[Q1@X&Q1H%T.6*O/L>!_9VB^X/_MR9/B4
MTJ-%_CNB?>3N#*HAJF'-J$4U1#5LU="5L$IY*XNR,0'"T*)L4E!@DNB8I=")
M;FV;[Y+Y/: ::E%A1TK40M1"U,(Z48M:B%K8-;LDU'JI&)#$&0CK!?CL%5BE
M-?."$$:VFK3LDD(^H!:*:8E<40U1#8]M0U3#H: 6U1#5L.NKZ0EG5$9(0EL0
M+E(PUH42'GJM@Q=9Y*V^FKODB@^Z3ZJ41#6L20T_IGW+%Z[<\)WNAY5O=[RC
M^PY_^O3YW_K APC9,>[WKO1QC[OO_O*CV;I\;+B'/5ZG-'&A;:;F%A_*JR>+
MY;K\\?6R99982"&UG04670V$6Y=O\FSA%F'FYN5>R@_:^I#F[)[V/)!GLW_L
M_#G.WK6KYR_EW^OK^;_N9/?[1^QQGJ?W$&>KU/'<H_+0-V\7C^.LN9B[#X_:
MWVZQT9DLI-)^_E7E!3FSNORDK<29Y0_7U]*]%](B/KY8-K/NCZ]26[7S+A4R
M>]_>>'LS'WGM_;YYZ@KE-TZZ7W]WQ9<'6 )W>HCBB\_O_&/)R]55SQ;SV:)<
MT=JMUH_<9KU\?/,7Q?B7/[YPOZ3+ZA=PN1CAD9O_YCXTC[_[\VU@W)2Q]D%_
M@LJ-1VZZUA)U/-ENQ=WGN5:S',/<-4W[/,O;K][4_5N^3ZOO;J]6^06#'V;1
M[+@NMH92]FW>UVVIUYOSV>)_RTNGD^(9WI?FU<-EL_.%/RK1/S]7HG]^TI]_
MIE\WL_6'6BWY]*.2/OU<25^7ZW](;+'WZ[XT;MNTX_5Z&?[WO'Q06C7_\6^&
M4?UX\JRS>=4W,#F47U+Y4O[C\\5D?;[<-&X1F^DDO0^IK6L]=ZLT*5AT?\*G
M.(2G^/>%V\3R\?%/Q[7($26^BU2[0/66O];Y)IU#=N4;M9?7_OUR/^W+H;C<
MR\W52RX_BI(2Q']__?KRF.?NHDF/FG3A5H6@;_HYW?N^VRJ0?C=K9GXV+T3X
MZ/H/?*GR^?(#.3\SWW_NQEV[)9T?]^>OO8V>\9W>ML-[S!DYU$<=\*[4F5'C
MNRM]J%LZ%/8JOK;=UI(=X5K29WH_:^E;YT]T3^,6MG>2^FCRV,O94'TDQ3YR
M@TRTW<>VK>HA;5L/=*)VOY;>V=.^ZS&JM\O%92A[6"CW?*APT' _4:JX^H0_
M/"UO]ZO9'Z8E%&^@2:M9W@>7/*@%]  ,O5^F>%+NLMT)=O._^-6?_]]+-XLP
M6R"FD0^0#^HT])[Y((3-V\V\W;1'(",)( G4:>C#D4#K%70M5KJO;A30(<B1
M() @ZC3T?@GBS7)]%3!\(5N.T#[@*!G<+J[VL:'M*B=KW"Z^+G]KJV-VZK2%
M&\5($D@2E5AZOR3QTJTF_W#SS8'#/N0)Y GDB0'QQ%-WT9[,0I9 EAB>[9 E
M#L02/Z8\"[,UL@2RQ/!LARQQ();XZXX-P)$BD"*0(BJQ]'XIXN;13"2)2O)2
MYHMYJ5!,D\/AIVB4]S^0C,Q0)FC\X.9N$=+$K2?_[18;M_HPH=,)(TQ6T&NK
M$H./HT%<)<8\M-WV!<,ZVKG=?&:'F&7I;6;2<Q"!!Q Q9;#)2&">*Y,9I<%L
M->76Q"FJ@@>1R\L%T0R<%Q*2=90'R8W/[';KM<L<XXO-NEF[16O]&PW7NO/Y
MS>>=UI[__-/OSE">*BZFPE389@W7YL MAQ*Q-P?G[E:LH3TH:L4GK>":!>V4
M .*D B&T >^] )NEU))0F17K12L^*RJ\C.]ZFEFLCC:&L?HUBE*!4E&!,5$J
MQB$55C#GL\C DBJQ!1,>3+"JW(^53/*@B=V2BL@3X<%XR"0*$#8D\)PJ8"%)
MYPW)VM*#2075>DH81;U O4"]J->8J!=[T8M[=2PVUSWP=I\Q<'!]*EJC9=0$
M@J411"AAB3'40>*,9*^9T3G>UB=#J#:)&M"FR)F(KH0_/&2@//$0K2-&]1K*
MW&W0 "5BRFR%(UD'SA #FZB#BC408Z)BH6+M-$M<<,T=-\"M+=&1D ZL+-&1
M\88Q[4A@.=U6+*6E""%YB#$Z$"IJ\"$IX-[Y:)+3S/<:4=UQ-(Y!M4*U0K4:
M@C%1K<:Q'\<(X5PF!EZR-M<O ]C, S B@];>9R:VU,-0(770%I1LYXTZD]MT
M#P-+!<F.T_)'XL'VXS2;%N%#W=CG=MS]"_J^V6CB;@5]W8VU@VD6ZT>R?,BA
M1>GSIOKDS++O;UP1>7P,GGT@!3Q[GU9AUJ1VG$G3+LC)\J)=+3O5TJ.3@$["
MB>0"[NH;]&7+_0]T[5HR,03JR("*?#EH8XX%ALB7"-1! !7Y<M#&' L,3W3O
MR2A!J$L$@O$9A!<:O*(*N(LJ.^U-"NKVWA,A/%J>,CC1UH+Q0, PQ<"1F*,F
MFA)&OKCW]+QI-BG^N%F5BWV95K-E[)I6=;][<1D%7X?'L:>M*8Z[4B-?N*@?
M@S;F6&"(_C8"=1! 1;X<M#'' D/D2P3J(("*?#EH8XX%AJ>Z/R%#(%X+H,HZ
M$#9)<$E9R#0R([6QTMG;^Q.RO(/:**'\MST*W6Y-:)E!"19]#IYG87%_XB06
M[E':8&'53.^^U:MTL5F%<W=9-Q,N1R@WNXY01K<!W09T&_  2']NBG8D"A\\
M*,8]""D2&"$9!*:RM"0:+?QM-R5I[Y2V&2S+ 82Q LI?L*!<2DQ;'AAU7W13
M/I'A#5_E]56?K@>V[N)\*BRZ)7@(!(5J",8\-:'"_4 $*O(E\N6IPQ =^X,X
M]HDEHXVP0$@L3CIAI.V55;Y-QD@O8C1QR['?N3[J*XY]MPG9TWZC)-AF$5U[
ME*HA&//4I I=>P0J\B7RY:G#$/D2@3H(H")?#MJ88X$A;H4<9"M$2F\#4Q*<
MSPP$Y0FL# EX\)):XT1P6VW#=R[%PJV0$6V%8.^B<51AM?61W0##6S58D[Q:
MOIV\>OWW9O(N->L4:U4*=%@&;4QT6 9=R\V5EYQ2#4DZ69P!ZL Q0X I)IPV
MRC*_-<[P/D523;.>?:V0^[(XZE5AI]4L%(;J7O;D-[>*_R@_F_4P\E#)*278
M!''L:Q<E9-#&' L,<8\0@3H(H")?#MJ88X$A\B4"=1! 1;X<M#'' D/D2P3J
M(("*?#EH8XX%ALB7"-1! !7Y<M#&' L,D2\1J-B^YU0*1[IL*_BVFJLM'+E(
MB\:UV=%:V0E%<M#&1)%$D42@(E\B7YX6#)$O$:B# "KRY:"-.188GF@=LM<F
M1D<U<&(RB,@$6.D)Y!0B3T3ER'OIZ?(D_FO3K-^62VG>+)\4^[?7X.8OW2P^
M7SQU%[.UFW=UR5U@_/2SN/A5^G4S:\JMOTZK=[.0+FN87Z6P_&71_94^ST'Q
MJ<"34*-?ZR@Y@S;F6&"(+CH"=1! 1;X<M#'' D/D2P3J(("*?#EH8XX%AB>Z
MI<$D5]X9#2(9TX[)8F $MR"$B918KAB1??1FP2T-7.O8TV5,I3DOUN=IU17E
MK-)Y6:RS=VDR6Y3O4ZT4CY[&H(UY:IX&1F8(5.1+Y,M3AR'R)0)U$$!%OART
M,<<"0^1+!.H@@(I\.6ACC@6&R)<(U$$ %?ERT,8<"PQ/-%/JA XJ.0M9NP1"
MZ@@N2PY!!2E#^5:Y?#M3F@4AV7H/UA$%@DD-/ED#)/G$5$I**G8[4]KE59Y^
MGE9YWF55_KILFI_3^D5^X]Z_7*[:*WNR7J]F?K-V?I[>+%^Z5;G^GA*A3&$6
M=.3K&.5DT,8<"PQ/5$Z,H<QZ1D"X1$'0G,'PY(#SD*/T(GD=^BB\03DYA76,
M_6[&45135N1D7E9FK62-/L-NQO1E5:75QY^<E>4R:9;S69Q< Z<2<P_0J]C1
MMKCM=P2P7Y9R$HYP1UY&7AXW4)&7D9=/".Z56 YY&8&*O(R\C'!'7D9>'A)0
M]\S+^\V?W)68/S[XNS^@/UX_FZ/F:XB-AE-I@1%E0! OP98/ $D<TS;&H#RY
MG:\QR3&KHX,0C !AA0-3?@ V*^N$$8H(<3M?\W-:?TK0W#W[TI0G4[[ZG30,
MG99/K2\3,R !O(FTNX/J3Q403"4F1"5$)<0(!2,4A#OR,O+RD("*$4K-$8J6
M(E); @TC28DV4HD[''<!HD\YVD"YB:Z/BC*,4*H6P'XCE*-T:QJGOO9* 3^X
MN5N$-''KR=_<*IQ/.)U.&&&R IFHQ-[HSZ _,V)_YN#^A?"V'5_A@!OE0$0>
MP=# 0&IG(@W.D1!O^Q?<1N633>!LR""T2F"45Z R3\S)$(*7M_V+K@UD\V*S
M;M9NT5K_AH_1=+_]W+EX_O-/O^=4L*E2:DH)1<_BM%9X)99#*4*@HA3U)T4R
M6!=R5J"I\B74%1*LE QBH4NO'(\F; UBVDF*VO'#Y\MY>33-LU\WL_6'GLY#
M*8QQ3VR!5V(Y5"($*BI1CUTA*.,R!P(D2 K"$%:4B$@(AI+ <N9!\]M*Y&7(
MAI@(DI)8WF,H6%(TB8@L,Y<T:*</ID14VZEE*$<GMLHKL1S*$0)UQ'(T^IPC
M<5H11@-$0UP)Q%($3T4L>B92-I3YG,16SI$H+@A30+-MI^B6_]CH&3@:4F0V
M2V9XG_)WQ\0CD5-M&.I@-:E'%$041!1$%,1!":*57B=%2#$8%2"(D."]*-+H
M%?&2>T[%5A&.59HJ80)P*Q0(Y34X9GP11&V=3B$:&@\OB%RA&*(8HABB&*(8
MCF2S4FFF4U$G2"J7R,NW&I.8!$J3<IH8]X5HC7A%;8H!DLE%QD11**<B \I<
M)-(+$=GA-BLUGQJ!>Y5'7^0XPW,<[0:?O4^K,&O29)G+WR^+=K*\:%<4]A\<
MF0]2B3$'Z&&@__#)?X@\\ZQ"!AX9 \&X;1O;!Y"I> '>J"A4NNT_:.6B%(R
M,32U+? ]&.HTZ!"]L2KFXI!\T7]XWC2;%'_<K,K%7L[\OBP,[7[YXI*FKODK
M/KA$E$^%Y/4Y%KAN!VXYE ^$X<[R@0?5$:C(E\B7IP[#$W6W.6,L"Z$A>]/6
M%G:%$N4KS2.-JLT,R:TJ=V<]B\D2L$$7%SUH"M8P#<(Z$Z3QU%)W1W?['VZ^
M2;_O;3^@]!"'@HQ]Y:* #-J88X$A.MP(U$$ %?ERT,8<"PR1+Q&H@P J\N6@
MC3D6&)[H!@63@@DB+%C&! C=]I%C68!F2GEF!366;IW^D%K1[#V0X ((I2TX
MY0,PZIGG-)JOG?[ #8K1K5R<6CJ.,J)7Z6*S"N?NLI H+-^^72XNZXEJ)6ST
M&P9M3/0;\%#.?1(IBL0<?.NG" E"< 76R.)X<,F2U8PPNE7WO'/=TB<R_$+Q
MTL/KE.A4:H)N"1ZZ0:$:@#%/3:AP0Q"!BGR)?'GJ,$3'_C".?= Z4QY!>.I
M\.+B.YHM1"\UE[JMDLJ]54A]Q;'O=B%[VG 4Z-JC:X]2-0ACGII4H6N/0$6^
M1+X\=1@B7R)0!P%4Y,M!&W,L,,2MD,/48D4M')46J&AKL0RGX*+2(#5U*A%J
M8][NQ+MK+19NA8QH*P2;.8VC"JLMD.QF@MZJP9KDU?+MY-GKER\GUZL6^SNA
MSX(^2^T^R\%]B"2L2:HX#5X*#8(+"C[* "I'QCQS.@JY]_Y.S]Y>S)<?TF5A
M]\LKPGHY=XN'%T\),C5*HELQ\M6+(C)H8XX%AKA1B$ =!%"1+P=MS+' \$2=
M;JY]R,08T(FHXD ' 3[G!)0[;D4V7F2R[RY/7_6Y^]K,(P:][I$O7U2101MS
M+#!$KQN!.@B@(E\.VIAC@2'R)0)U$$!%OART,<<"PQ/=I;#24VZ, >%, $&(
M!TN5!6Z3-":S%$Q_Y46X2S'.Y8O]GDZATNC5Z[\WDW>I6:=8*XFC+S%H8Z(O
M,6A?@AAJ@I3%@U#:@_ L@W$R &_G7##)0N3Q(65&3;.>?;O&Z%5AI]4L%(;J
M7O;D-[>*_R@_*R][<)$1)7:J386STW'Q#MQRJ"$(0]R_0Z .$ZC(EX,VYEA@
MB'R)0!T$4)$O!VW,L< 0^1*!.@B@(E\.VIAC@2'R)0)U$$!%OART,<<"0^1+
M!.K#*T?N7"#RU1(3K!PY1.5(EVX%WS:.:BM'+M*B<6UV]'<7RU>;$*%Z]JH"
MN]H9V6H@P#U=O45HCQS:R,D(W$$"%SD9H3U2:",G(W '"=P3K<V.S##+LH1D
MJ 5A$@$OD@=.LE191NDCZZ,;S9/XKTVS?ELNI7FS?%+LWUZ#F[]TL_A\\=1=
MS-9NWM5J=WL%3S_;*GB5?MW,FG+KK]/JW2RDR[KN5RDL?UET?Z7/+M1\:@2]
M?RDWLL/(V0%E#8$[2.!BJ('0'BFTD9,1N(,$+G(R0GNDT$9.1N .$K@GNOW#
MF'624@)1! TBE?\X*2,()2AS,D2AMK9_=FGS@]L_R ['*_GZ^M/ DJ_>?<$7
MZ_.TZHJ]5NF\K.+9NS29+<KW:8=U]/5B/?1F^A3?N]D9^6H@P,4($Z$]4F@C
M)R-P!PE<Y&2$]DBAC9R,P!TD<)&3$=HCA39R,@)WD,!%3D9HCQ3:R,D(W$$"
M]T2SXRH&EXR,D(WG(&@2X'CD8$@BSD6CB3"WL^,^RFB%4A"#R"!XB&"2DI!4
M-I0+XXC2M[/C7<KLZ><9L^==PNRORZ;Y.:U?Y#?N_<OEJKVR)^OU:N8W:^?G
MZ<WRI5N5Z^\I^;U#"WM<^"-?^*A8"-Q! O=$%2L1%D4,!&B@#D2RIJB/<Y!D
M=)D[QUSHI9X+%>N4%_[]Y[I=56#A7+>J2K7*2IW,RXJMM5?@6+V/?7.-+ZLJ
MK3[^Y*PLETFSG,_BY!HXE9C[T);M :@[VO9T=S6/"/9+U2$<X8Z\C+P\;J B
M+R,OGQ#<*[$<\C("%7D9>1GA/C0J0>9&*!^5N?>;>;DK=7]\\'=_0'^\?C9'
MS?1PEGE0DH)/*H'P@8 S*8!F,7FMI/:)W,[T).8E-4J -22"H,R#4=F"9](1
MF:+@,=_.]/R<UI]2.W?/VS3ER92O?O>\/67D_DD<E,BOX/SNH/K3< D&M7+D
MYD:MQ"CGA"C\=.".S#UR<Y\.E#'*.4P]6U2<$); D!#;!O,*+$\2!$FF_"_Q
M.=H^ZMDPRJE:(ON-<NY?OG95(_B0\K5QYG]ZI8 ?W-PM0IJX]>2_-XLTX60Z
M883)"E2B$G./T9UA9ZQEGKC<^'E"AZ9GA^8>UJW#I3F\BV&X()%E<,()$-($
M,-1%D%$0YY@EC*C;+@;)VEG'-5A&RWNHM&!->4\6CDB7+*54W78QNO:FS8O-
MNEF[16O]&VY&T_WV<__B^<\__8Y?0=E4&S-5?(>6I4==X[6Y%P-<Y958#@5I
M()[POU> 652F>QX_-IX%ZRE8V@:R202PNL2U.03-&(^A1,>]*%,[I/U\.2\/
MIWGVZV:V_M#3^2PE4)A0F%"84)A0F,8D3#EF*HGQH%VT('PR8(--D(FDGJCH
M DVWA4E)P[V5 5PV19B<2F!3>7=@42E+J&1YJR_&WH2)&C[5U*(ZG9HZ[7VE
M[S53CZ*&HE8/U#&U^;!]1^&))MD"3ZE-;5()+A #*HA(A3$Y\*U6'5HE%SAW
M(+54( SA8#-UP+0.W&I!)-^:O/T0$;U;?I,2,[5DAV8<J*:CK.1$6:T.["BK
M@X$ZRNJ#9-5JZGQB%ES2)<X4ML2FBD?PB@@27&)<AJV*(4>%"XZ!C%R"R+2M
M-R(!B"^!;-#6"9(.+ZM<55\TA)(Z7)Y!245)14D=XO8K2UQPQ0-P)1(([B@8
MGG*Y'V>H\C$GN]666 H?+3$&3+!%%FWTX%3(8(KN4<V)B"H<;/M5BZED6+12
MP>[KQU+8\D7;H/-.RX==NX7WOY%/R_1N:O'I\[_U@0\P17?OW:U?7\SG?1[=
M9KV\1D5[>>W?+_?3OASF[L-R<_62RX^BI(#A^^O7%R*8NXLF/6K2A5NY=;JV
MRR5NNO=]MU6&_&[6S/QL7M;:H^L_\*4"X\L/Y/S,"-U^XOO64NW57=UJ,?[[
MQ]_]^6MOI&?<[/*V'=YCSBAA!_JL ]Z6.C-JITNL_;:L.=AM'0R!Y' (/-@]
M63;"5:7/M-K/;7WKS(>^?\OB+RK6MF#?Q8/Y/7?E4D8?6&JC>W)$[JO?>X[V
MT':_9[L"YO97__F=^FXO=NSU:.I^+7W7R.RW2U;P)?"YQX-XNGS[MD1H7<QT
M6"CW?(YOT' _4:JX^H0_/"UO]ZO9'Z:-6S30I-4L[X-+V'ZXI!I#[Y<IGI2[
M;/<[W/PO?O7G__?2S2+,%HAIY /D@SH-O6<^"&'S=C-WZQ01R$@"2 )U&OIP
M)-!Z!=V K>ZK&U.V$.1($$@0=1IZOP3Q9KF^"A@^3\MV[?8T0KMO6L#MXD$^
M-K1=Y62-V\57#^*R&PQN%"-)#,]V2!('(HF7;C7YAYMO#ASV(4\@3R!/#(@G
MGKJ+61L=(DL@2PS.=L@2!V*)'U.>A=D:60)98GBV0Y8X$$NT#?"1(I BAF<[
MI(@#4<3E64 DB<KR4G6-KBCO?R 9#7)NA5MLW.K#A':3*T0%AZLK,?@X&@)4
M8LQ#VVU?,#S1\_M<A=QVXX;DH@.1B 4;N8=,4G0D.BX]OWU^WT9)K,L:'&G'
M_<9 P$CN($H5D[$YFT .,W%"T:D0IK[#^[@V!VXYE(B].3AWMV(-_6!0*SYI
MA0]4>18H*$,5"*H<>*LY<$:ECRH$;K=:;>^D%:<T Z*2-8I2@5)1@3%1*L8A
M%81[S3AMVU8J#<+9=J0=%1"24IHX$5T[8>&F5&0K7699 ">4@0B!@64B0A3$
M.Z>2I)0=;BJ#)E/**YS*4,E"1;U O:C F*@7>]&+T7=F)D+PHD$2LN3=!" "
M3D<.B5"=:"!6I:UM+VJE$4QPB#:VX4_;L3)S4X1-IDRI5%*:PW=FMG)**6Z!
MC;'M<B4F1,&J (\H6*<M6"**G(R50+@Q[2S5"#ZP!)ZHI*/TD=N\/7_5,AJ=
M+V*1"0BCR\N=)D!)%C+$J$BT1Q@EP%"M4*U0K89@3%2K<6S'*>Y]LH)!B*JH
MAS(:/-<2F*$Z1.YE\&1[OAO+60D-SN82(GDMP+EV9FH(E$BAO".'F]ZMQ51+
MC;JQS]VX^]?S?;//Q-WJ^;H;FRUBN;I'LGS(H47I\P[[Y,RR[V]<$7E\#)Y]
M( 4\;YI-5P.XS&5)=YU@FW9=3O)J^7;RZO7?F\F[U.S8X0V=!G0:3B0U<**^
M F'$*EX\A&B\:W6_2#X+"I1-@3-6G ?WA=1=])(&";$=""MH<F"-(2"S-2JK
M[(IX7_L*3;.>73H*+5&E^.-F5:[T95K-EO&R2O!58:?5+!2&ZE[VY#>WBO\H
M/YOU4#7(Z52S"F?9X=H=N.500A"&.TO(7N<?]JH979,_AD =&5"1+P=MS+'
M$/D2@3H(H")?#MJ88X$A\B4"=1! 1;X<M#'' D/D2P3J(("*?#EH8XX%ALB7
M"-1*&T%AX4CO:Z/+MH)W36H;V+V]2(O&M=G16MD)17+0QD211)%$H")?(E^>
M%@R1+Q&H@P J\N6@C3D6&)YJ'7+2/.78GG/5%(3/$9QU 0Q-.@G'J,M;)UXE
M8UER*2!KHD$P7MXC4@;+$J/<YB!LN'UFZ4G\UZ99ORV7TKQ9/BGV;Z_!S5^Z
M67R^N)IFU-4E=X'QT\_BXE?IU\VL*;?^.JW>S4*ZK&%^E<+RET7W5[IY:3V=
M@&)3R_  U-C7.DK.H(TY%ABBBXY '010D2\';<RQP!#Y$H$Z"* B7P[:F&.!
MX8EN:=!LG)'9@,_:@A#*@ O.060^9BZRB,%N;6E$90C)%J1B&013 CQC'+Q-
M@JA,9,Q;72=Q2P/7.O9T&5-ISD_+57EHBTG8K%9I$3Y,UBNW:.;=FIW,=QR3
MB@X'.ASH<&" AD"M!ZC(EX,VYEA@B'R)0!T$4)$O!VW,L< 0^1*!.@B@(E\.
MVIAC@2'R)0)U$$!%OART,<<"PSH2IJ.?LF2=IHE8#SRUR5;E WC"/22NB(J>
M9&^VQ@(ZRY,,A( SQH$0EH%5,D @P=LHK4A*WT[0OEB?IU6;=UVE\[1H9N_2
M\T58ODU_73;-5:KGZ56FYTV;Z+F\R">+^.93VN=3DO?GM'Z1W[CW?4]JH@J3
MLW=*[MT==CBH"74.=0YU[L@Z)[U01:@,\-B.6I?$@<V&0XA>*\D]\TST48B$
M.C=P7NE7Y[!1T#BJD<I"Q**C$3HSOJRJM/KXD[.R7";-<CZ+DVO@5&+N ;H[
M.]H6-TJ/ /;+&EC"$>[(R\C+XP8J\C+R\@G!O1++(2\C4)&7D9<1[LC+R,M#
M NJ>>1D3.P]*[/B87(J105"&@P@B@S6!@2%:$.JYB-'=3NQHE8@1,H)D*H!P
MK+Q<>P&<,J]2T)0X>SNQ\W-:?\KD])V/85-+;'TIF0$)()8GH!*B$@Y;"3%"
M&3%!#Q#NE5@.>1F!BA'*<",4)0F/S 107K3ETDZ!EUR4N$,:Z:(,GLL^2L\P
M0JE: (]=6-9#FZMQZFNO%/"#F[M%2!.WGOS-K<+YA-/IA!$F*I")2NR-_@SZ
M,R/V9P[N7X08/7<R@6:)@"@> AB;(U@M=2 \4YFVQX80ZXA4%EQJCW#%J,%1
M:X%)YZ..PLOH;_L77?_,YL5FW:S=HK7^#1^CZ7[[N7/Q_.>??J\,G4VUY5.J
M#'H6I[7"*[$<2A$"%:6HQU W,NI-H$ M#R74#:2$K48#2]))3@.W=ON4U2Y2
MU,YM/E_.RZ-IGOVZF:T_]-2@60E4HM-:X)58#I4(@8I*U&-9"$N&M_$03]H7
M)?(://$)F!!"6BW*__K;2A2DCDH8 SH2!H(1 R:7=ZLD#;$T&*[5P92(:CXE
MJL)SNBA'*$<H1R</U$'+T>ASCE1J6V(Q!\G*5.2O#:JD*X&8C3EF8@1Q6SE'
MGTUTID1KU$55 C$7P0@=@019_E*10ZIBG_)WM\2C-5-2X\R< <D@UD:B'J(>
MHAZ>L!YZR5-VM@1TR4L0BGLP01N@EC*OO0R4F]MZF!PU@I7XK[RWO(<J#IZI
M##I+Y30ST0MQ>#WD K<H40Q1#%$,40Q'LE=)DY$E.).@?9LURU2 )8Z"](DX
MEX6P:BM8LUHYP3,K+]<:A+0$O'4>&-?<)^V3E+V*TS<U28NIEE@=>O1%CK-/
MQ]%M\-G[M JS)DV6N?S]LF@GRXMV16'[P9'Y()48<X >!OH/G_P'1JPJ@D_!
M\.A % \ ?.(.$B$BJ&"==GHKN(U)Q.#+BS2));BE'(SC!JSVL?Q?-H'F+_H/
MSYMFD^*/FU6YV,M9Z9=UH=TO7US2U#5_Q0=7B,JI$J0^QP+7[< MA_*!,-Q9
M/O"<.@(5^1+Y\M1A>*+NMG!:!!XT1-=VC](V@W-6 4F.F92$RHS<=K>YX)[8
MD$!E&=KQ(QPL50ZH2SE1DGB07RYRWW:W_^'FF_3[WO;NNWD2_>V1+US4CT$;
M<RPP1'\;@3H(H")?#MJ88X$A\B4"=1! 1;X<M#'' L,3W9^(S@OK=01M9081
M+ //,@?.;:91>A4,VRHG"D:QD!QD:R((;A3X( E8;4/RFNO<GA?!_8D36+@X
MLG0<142OTL5F%<[=91E16+Y]NUQ<5A/5RM?H-@S:F.@VX)&<>[@I.2LM8N1@
MV\:V(ED#/FH&)DA*<N8Q*-M;U=(G,OQ"Z=+#^]AQ,:42ZY3PS TJU1",>6I*
MA1N""%3D2^3+4X<A>O8'\>R=L8+12, )Z4$$*<%(X\!S2U4RWANYY=GO7"#U
M%<^^VX7LJQ7;U-H*3S=60@[HW*-8U63,4Q,K=.X1J,B7R)>G#D/D2P3J(("*
M?#EH8XX%AK@9<I#-$&.UY81H4#00$$X3,"1D8,*KG*1.*83>JK%P,V14FR'8
MSVD<I5AMD60W%?16(=8DKY9O)\]>OWPYN5ZWV.()O1;T6FKW6@[N15C%8N#.
M@]'1@F QMZ-I(IBD7*""*)^W:KI[;_'T[.W%?/DA719WO[PBK)=SMWAX!157
M4VDJ'':#JW?@ED,101CB5B$"=9A 1;X<M#'' L,3=;JSL3$YX4&%E$%8[]OQ
M(0$BU=98JTVV6WU5^V[T]%6?NZ?M/%'C.!%<O@.W'*H(PA"];@3J,(&*?#EH
M8XX%ALB7"-1! !7Y<M#&' L,3W27@O- I)($4DH11-()O.<&#.>94FI#]OT5
M&.$NQ3B7+S9].H5*HU>O_]Y,WJ5FG6*M)(Z^Q*"-B;[$H'V)%(4+U+9N1"8@
M,G'@A:8@N>96:Z&,C0\I,VJ:]>S;-4:O"CNM9J$P5/>R)[^Y5?Q'^5EYV8.+
MC R=*H..Q-C7+DK(H(TY%ACB]AT"=1! 1;X<M#'' D/D2P3J(("*?#EH8XX%
MALB7"-1! !7Y<M#&' L,D2\1J(, *O+EH(TY%A@B7R)0]U$X@BUJ:BP<Z;*M
MX-O.46WAR$5:-*[-CM;*3BB2@S8FBB2*) (5^1+Y\K1@B'R)0!T$4)$O!VW,
ML<#P1.N0E7!!$,U 22U!9)7!,\<A4Y.5\3828OKHO/(D_FO3K-^62VG>+)\4
M^[?7X.8OW2P^7SQU%[.UFW=UR5U@_/2SN/A5^G4S:\JMOTZK=[.0+FN87Z6P
M_&71_94^>R[S*178'''L:QTE9]#&' L,T45'H X"J,B7@S;F6&"(?(E '010
MD2\';<RQP/!$MS0,-]93ZX 1FT$X[\ [G8$PEX+-P46Y-<%AES8MN*6!:QU[
MNHRI-.>GY:H\M,4D;%:KM @?)NN56S1S=TDNB[!\FVKE>G0Y!FW,4W,Y,$1#
MH")?(E^>.@R1+Q&H@P J\N6@C3D6&")?(E ' 53DRT$;<RPP1+Y$H X"J,B7
M@S;F6&!XHBG3((+(G%!P/$D0,0JP-BA0V:@4O4Q:R:UNU(HEPAT#G6("(9P"
MS[R *%0PGEL24[J=,GVQ/D^K-A.Z2N=IT<S>I>==5N6ORZ:Y2KX\O<J]O&E3
M+Y<7^601WWQ*Q'Q*N_Z<UB_R&_>^IT0I99@E'?GR1I49M#'' L,351FF@U3M
MN ,IJ *1BLH8J@W0K+GV/H?@5!^%.:@R)[R\L4W..&IQRK*;S,N"K97#T978
MS9B^K*JT^OB3L[)<)LUR/HN3:^!48NX!.AL[VA8W"8\ ]DO5(1SACKR,O#QN
MH"(O(R^?$-PKL1SR,@(5>1EY&>$^-"I!YD8H'Y6Y]YMXN2MU?WSP=W] ?[Q^
M-D=-]!";HJ><0:8Z@9!"@U640U!29"&B5'ZKG$ [01/Q' AE @27 1RQ#)*3
M62B;M4_N=J+GY[3^E-FY>WZF*4^F?/4[B1HM*\S4#$@@;^+L[I#ZTW#I!95R
MY.9&I<08YX0H_'3@CLP]<G.?#I0QQCE(C).8Y)HP"C2Q#,(G!H9P#UYX;XE6
MPF?>1S$;QC@5"V2_,<Y1VDB-,_?3*P'\X.9N$=+$K2?_O5FD"2?3"2-,5* 1
ME9A[C,X,.V,M\\3EQL\3NC,]NS/WL&X=#LW!'0S%95322+ B<A!:6O!<1$A1
M61TMDVR[C65VSJM  _ 4" A&*3A2' QGJ28T>9-8N.U@="TJFQ>;=;-VB];Z
M-YR,IOOMY][%\Y]_^MT2]ZDV;&J9J=VYN(7"VMR+ :[R2BR'@C003_C?*\ L
M*M,]SW%YJF22!ECPK*@,M^!T&]!ZHZ+F5%FU%?KNI$SMI.3SY;P\G.;9KYO9
M^D-/9["40&%"84)A0F%"81J3,"7#I%(Y@;'.@5!1@(]4 ?4RQ2!]5MIO#3.4
MU',N.1AN- @:##B7!22>O(^!LY3$P82):C%5JOH]652GP:WTO>;I4=10U.J!
M.B8V'Q;=T=PV@(J01,X@4J!@I?6@F.+M?-\@I+LMHI+*E&F08)3A);JSI+R'
M%!UF.7)#2^#'>Q71NV4WK9EJ;5%,*TIQCHQJ4%5155%5455_7U5]CD9::R 7
MB2P*F30XSA0P;KW1UK&HMWI?!2]5DNWD.I$8")T<.!4M<.>%)T$XELSA595S
MC$]14E%2*P4[2NI@H#ZVW=?@*$V)@R=$MVG!",9: 40*+A17GM.PE1:T*O'H
M&7@= PC+,GC%9!M""JD$I89L-1'>V^ZKEE-%)8K;\3=?/U;"EB]<N<T[+1]V
M[1;>_T8^+=.[J<6GS__6!S[$%,>XWWLYX7>[^^XO/VHG(<_"/>SQ.J6)"V'Y
MMES=A_+JR6*Y+G]\O6SI(Z9%DV+[55<5[M;EFSQ;N$68N7FYE_*#;BCSV0UH
MQ=F[%E%_*?]>W^__=0TRWS]BC_,\O8<X6Z5NQ3\JAMB\73R.L^9B[CX\:G^[
MM2[/9%E>[?5?%6B3,ZO+3]JNL;/\X?I>NO="6L3'%\NF&^W\:)7:#K/O4EG6
M[UM3ML;XN,+?[ULJKI[\C8:AU]]=,<<!8'$G$,@O/K_SCY7Q5U<]6\QGBW)%
M:[=:/W*;]?+QS5\4XU_^^,+]DBZKY,'E8H1';OZ;^] \_N[/MX%QD]#;!_T)
M*C<>N6DYMI(GVY'Q?9[K,>GMQG(,<]<T[?,L;[]Z4_=O^3ZMOKN]6N47#'Z8
M1;/CNOCM$BV^>"S[,>_K]DC(F_/9XG_+2Z>3YXMP=D\I40^7DLX)_,C.__R<
MG?_YB9/_&5QS_L]<JR6??E27IY^KR^LO;2%5<]$?C3M9YLG38M_)3_/E;TW5
MUSRY)T#'NG3_^'PQ69\O-XU;Q.9/^,B&\,C^OG";6#X^XO.J,WCJ L<N;KSE
M*G9N4><+7KEE[>6U?[_<3_MR*-[^<G/UDLN/HJ1$TM]?O[X\W+F[:-*C)EVX
M5>'=FRY6][[OMHYPOILU,S^;S]8?'EW_@2\=SKS\0*G/K/K^<Q?RVB7J?,@_
M?^U][(SL\C:ZRWO4;I>XRV>-XK9ZGDGQQ:5UM].^O[<)=;F^[UP__86]H#UN
M-]V7:/:\I]^S+4=7BUZ@W/[J/[]3W^W%B@_OCW$TS.[L)-PM'IR]G_RM?'?>
M3)Z5>"9^/+5^6)3OW,>AAB>TO[6!8C#(QX9BT(\8,!2#@XH!(TPB[R.!')%
MKO[^'YZ6-_O5[ _3QBT::-)JEI%A1L$P.[5"0H8YNF?YS?YA>_0LRTLK9K)>
M:Z6ZA$QN$S*3O%J^G2POTLJMVYJ&MKSHW6P]2\TC%(SA>9Q8Y8K&') Q<7TC
M)"N#Y,B->91)Y#O5P)^0.W;PL>*G3M.]ULA7;\SZS[OLB:/Q>.C#SL[(I)US
M&5QFH3WJ2< FK2$')5C@.MNP=78F"29DU.4]3 @04DFP7!B0B92?$I6=M+?/
MSKQ<+<OE[*.5O)@J<K2V>J/EA<,=^:S>A*A3%> 1=>JT=8H2%Z2S"FSD#@1Q
M"1P1!&0L0F 328%LM3&@VDK&0P EN0;!27F/3PZBY#*)Z +16Y,=]Z=3?*H4
M19TZB$[5DY#H;KL]/[18/Y+ED_<5$=\X?W5FV?<W/ID\/L93?" 1/(GMF<;+
M R;KY625RJ_";)XFBZM0NOUI^W5[M&=RL5J^F[4U9_[#Y(^;]B3-;#'Y$V8]
M<%=TN!MYN"LZ6&/B^D9(5@;)D1OS*%F/SYVL+L([:!KD<Z>/GAG)1^#U_9C*
MF\+,=;'?,K=^77'AUA\F;A$GZ=?-[*+U"&O=#1@=[9]6%'IHNXU[4^K@FT2"
M)A($9Z"5;[M!MWVAG>7@G3(N.5I^E_I(9GS.43VU .-3PC7N#HU\7:(\#-J8
M8X'AB<J#44S)3"6XY!.(P&51!D? "YD#$5Z1[5SW+CF$O<@#90KEX2"M'P\Y
M!!WCQ]ZS!F^7Q3;_]S%^G"W6;O'+K.W)XIHFK;$ #WV#:CFH AB>J&] ) M6
M6PN&LUC"0&K Z<@@,2\B3RGQ1/L('3^GIQ?Y^4=R>M)Q4U_3_*:68ZG!V%<J
M"L:@C3D6&)ZH8+#DF:510$BB!)/49S#2TQ(86F-2=#3KK6EUNP23AQ(,=K1Y
M=:>Q4C$].8KP\OG;"S=;M2E(3$ZBPS \&JH AB?J,'#./'/*0%:>@<C"@XFA
M?,4S,9S:H*+LZ:15W'0?_*J=4I#B)\IJ7JR>GA<[I;[\!LW1:1CY:D71&+0Q
MQP+#$Q4-DHC.F4N@1%H0FI@295(&2AM'DB?1L:V*EAV//1U,-+@TJ!IUA9J8
MR:PPU.S&38)WES/GWEZD1=/M M5*T>@I#-J8Z"D,VE/0DMJ<: 1ILR^J'QWX
M3 )H&T,0(HH20O817KXNOD#ZH26EIY]Q4E_QY+1<$#H'(U^A*!2#-N988'BB
M0L%I,B5L+(%DT0<0)EJP(7"0@3&OB712Z3Y"RKT*A9H2W'NL+8K$A&6%4>2/
M*:?5JH20:_<^8?$KN@35$DX%,#Q1ET#H'$TV HH+T#:!+"Z!9R: 25JSG'D6
MA/=S;O*2BYXOPO)M>N/>/WO?.@;IA[1(Y3K[*F;"[>6QKU.4BT$;<RPP/%&Y
ML)YZ;@DO$:3@()(K$62R%DB,J@2/65B9^SE'>1"Y('CNOK) $M.1%0:2;4_4
M2>& .&LNEHV;8_TK>@W#(Z,*8%A%'[9>J>$__LTPRA"H(P,J\N6@C3D6&)YH
ME,5XM#FJ!,H0#T(F"X:Z""P)(R-3/B?;1Y3U7VZV:'V[%XO7)7IZD5]>^70O
MYVZQ?G;MT_7=#1^K/"J+N3!Y5V',]60^7_[F%B&UBVD25BG.+EO?8R8/G89Z
MV:<"&)ZHTZ!%($(* \DJ \(7+\"G1,%X*X14FKC42P?4E^VTC:9\[D_+U5^7
MKG,@4G.U/QM[VIEE"GL2C'V=HEP,VIAC@>&)R@4)W#KK!'!*(@B3,]C $EAF
MF4]$"V%83\<+]R\7DJ!:U!538AZOPICRZ;E;_)+:Z6C9S5:3=VZ^26TNKWU%
M>7/;V:9\V<QB-S@-CQNBYU O)54 0\SF(5 ' 53DRT$;<RPPK"/2&OV\["2S
M5(XGD(8Y$(D*<(XQB"'Q3(T2DO;2..:'33-;I*9YNGSK9XO.87SZT9%\^KD?
M^62U:AW/KJ7,I0_Z?/'D;0D7UB_R5][RUYGSL_EL_8'VGGZ4 H/%.T4;=P=B
M7Z.XOYF)[&D4=\<N&#7>-VILVK#QLY':70_BKOAS?K54<;PVCM_M5ZIQ_"X:
M$]<W0K)V2([<F,??_9?'W/UG9UJ/P8][$D(;<C6350II]LYU<]$6L8L$VT#H
MTJ>K=?-@=+1_6I$E[F'A'M8]]K DS3+1;('+2$%8;\ ZRD &$W+4.DFK'E+,
MUC3KV:/GBU!4J4D_ILM_GR^N*?+51X9\LHA/K_BQ&[O35\'"5 KL57&8;:@*
M6 /%:]#&1/%"\;J'> 4AE&G[*D8JVR$O4H!-@@"34KCD0U9D:Z#H?1(PQQ<O
M(O$0UR!S*!A['R?V?KE*%VX6)^FR[O4R<;)<GZ<5CB9'SP4]EV%X+H<OY4C$
M$,HE9&(Y"-(>YS)4 ;%!&YF]EKZ7SO[;SL0585WWX;JJUR\.Q8N6M.X[@?9N
ME1G**O0J1KZ044\&;<RQP/!4]42+K!/E0(UNVS=J#4:&=GRYX\P'%6SLI7UC
M'7K"%6ZQCOQ8& :G?2:&+]R'=MNH5M)&WV'0QD3? 7?1[^.K!"X4#00(=Q2$
M,AYLC!9BELP;9SPC>XI]K_GPY24=]NV6:(KCBS#SBYHU!&.B9J%FW:=QIXE6
M9=4.TK&L_(=G\,Y$$$PK(ZT61+C]Q-?[UBR&H30F?#&FOD],O=JD+R9\/SLO
M5ZM<H-<R:&.BUX)>RWV\EN*T>$\M<-=Z(%IJ,$0'X$P%'S*WE(:]1=HM2_[U
M$R->9P1>7)\T_NQWO><'II1A+P ,Q5'4AF!,%+5!IYZS%R62I01$"7%!$,?
M1\9 9A4EH=QIL76BI[?0>"\B\^T&UMB1%%//&";?>43]*KU+BPVFGD?F._BR
MN-+JXT_.RJ*9-,OY+$ZN 52)N0?H7>QHVSK\C]$'U80SH:2Q(!(S;2J@J XQ
M$H3+0F4A;%"]C./8]G>NCWS]SVQ]_G33E.>15A_;Z?6>&" 51M#?6!F7F^6$
MU\([&&6C4J)2HE)6%*EK(32UL83FW)1(W3D!CH8$17Y"T2>95-#[B=1[4JYO
M"]:4RPKKKP8D64>*WWM.<[.C3A3A9YKH$<3O/Z?U)+CF?'+1COF))9#W'R9_
MW#3EB]GB3Y_WBRWK[!WFO-%Q&3AOH>."(?ZUHZ28U3)[ 3J1XO082L$KI4$[
MY6,4V5+#^PCQ"\D^+1S[\HIB?_CP]\*OSQ<?LQ=//G)KW]$]G8H:,^0#<I8P
MOD>91)E$F:PIOG>9.YX=T*A+?*\"!QMT JI4""XS58+]/N+[?<C6-]7*3KFE
MJ%;'7OL]I^8?,/9E7Y'\  /U=B5.\GSY6S/)J^7;$IV_2\VMR!RGM^!TAQZ%
M#:<[H#%Q?2,D:X?DR(UY]$S+40LER9EE(\BSO-RLPKEKNFGM%ZLVK;+^T!TI
M3+]N9A?M8,T*PO#3('PLUJY\-ZCBO9[1IT2L-RD)38!E84#PG,%EE4!)0S1Q
M6GC9RU'"E^Y#-TWXS?))* RX2B^O2/'EW"W63Q;QV34O]G6>8\JTKF]OJ1*6
MP"P'JE9-QD350M6Z5ZLYP[.Q$:B4'H0/%%P,&3SW) INE34/&MAR--7B4TU1
MM6IMW-/SB42,LQ_.#\^[M$B[ MMQ][/%VBU^F5T/2L5Y+>-U7+ \ \LS3M/Y
MT8%K+8O[PDB([4P "5Y(5^)V:C5AG)@>1JU>>3X_+5>?&/;YXOE'?MUU$,"W
MJQ?QG$<][A%J(VHC:B-JXZ"T,;$D9!ODD^P]"!$S6%F"?!Z\44D04KY[\"37
MHV@CQT+)_\_>NS:W<23IPM_?7]&A,S[CB4!QZGZ19C="ENT-[>NQ'9:\$_MI
MHJYBKT$ BP8H<7[]R>IN@ !!2B0%D@VP9M<4"?2E*BLSG\RLK,SA8..3;]&7
MPY![/0S9GW^\-LER )@S$!DJQE$QCHIQ=+C&D=5.26P9HMQ;Q"-VR&@MD.%8
M8FF3E/8ACS^^72G7ASO^2$?4#+".X[.UDPI,%I@L,%E@\J!@4BA&%+<1$28!
M\IAD 'E)(4]Q8($;G?933NGI8)*-%!]@>Z!G"Y/E .8 @P-7#V"F>F(GOBX'
M,,L!K<,[4U0.:!TL,8M\%Y8<&$L>.3&??'>G)(;NX0#F?.IC#+WQ%C_%N:^[
MXYC-8NK_J*:S[/24W9VG5T['F*E^@$&I 8><'CT$%$@,-F&'8N(!<2,"TLH;
M%"UQCE 9-=9[.179*ZD?04>]RVKIETXK_="KJ["OQ$HSO&A/D=0#IUP!C,*&
M!3 ZP-#,8IR[+Q@6(^(Y,=]9'%!P0JODC$YZ+WL&CP48HN#% 55<+![F4WB8
MO\597^2GR6ZEGYZ=32>==SE4[5R,A(,F9C$22B+#7?+]@L>>@]MJ.-8(W%."
M+,,$1<F\!.]6\+!CE'Q-;9\?I_-+G?A+>M,JQ-9*V5>]:#7 W@8#T0TE<:]@
MU9"(6;"J8-5=#NYA0@SQ#%'G '>"B4ASZ5%D0B8J>23<[K.BSX-C%1D94Z*N
M0\V?*QNV@W.GKVS8GLW&TXL8^]W:E:16L[&=#!4JBL5R/V*6HP;EJ,$PPOB4
MV\0<IX@8@Q$WP2%'J43&:4H\V!M$?U5IG>O"^&^;9FDG'HR0=Z=V'IO?08?/
MWTXRV>OS7$N@_?@[4'X!K)19G#0VCSA7(-Q7;0&.RVF 9Z87!D*Y F"%40N
M[7$?VJ7HI4DH$680!^\8.9XD4DP'ZIE0*=!][T,/ <#X  /#SPW GGQ3NQ3%
M>9"B.-<=?!L , Q$=(H%<WB:JE@P9>-AG>HM7<":*Y1"=OF5%<B%7#M0>*F]
M(0S3G58">RR*\^-*N3[<:7_!!]A1X(",H[*S7D"R@&0!R6<,DD(&XH73 (V4
M N"E!+])B70DUJ1 .7#1 Y;$>020)",A2N6XX<#DDVSI/VKLX !# V].[>1#
MS#&!-D"06^RTO^2>MN<@?9/29N?8;)Z!$/, +9IBKSQA5UN6&)@K%JDD1+8]
M,#*8)D1C-#+(%)@(^W#JL[&2__OA4@'^%IO%O/:+&/(7KR=A^X.-*W^-\WH*
MUHT'F&KB]['[]X=/?KS,C ._M.KV-[N(/Z04_1UZ#-[.YN$C*@?856 @*J>X
M_04"AT3, H$'O3,?E:6"8XD2C0!)G!AD!68H:7">I:"*V+TDN \5DKZ 1-@,
ML/?;,4G^D^_.EQSYKU<MG=#ET^:Q%\5J#K)838M'7LR1 U1* V##9VJ.&!&U
M,0DC9Q5XNTX89!(#1>_ PDC)&X[=/CSD3F/]DC9-AU\F7V6D@'G2F2/?U\UL
MVMCQ?P!LS> .^#L/N)XL8_AE%N=MFN&^4@SI %/DBRHX<,H51"IL.%!$.OH8
M<7)"19PD8HDDQ$/4R":ID2+$B(!E9'HO#ODA(>#MXL:R(&'9 W^V>^ W^=F5
M750NPKCR,[*+?A'M?*@84TR=D@(X-&/HH%, 'S]O/7E*\M$^38G-)<HCTCXR
M9#0F(=*@P*>_:KYHPH7RRH#YDAUXJQ/X^XXB0SA.EA$O?-CK?L*^:NFP$=$#
MW!\XH.R\ ]0' Z%< :["J 6X]GA$76#EK2#(J-R%G%N.3$H&14E8PM1IY\U5
MX%*2IB2Y0M:D'*U6'%DK/++>$RRX=!;+(0*7&"E<<.O)U<&3['T71_HK'.D(
MGX,+/6OS40:@X@>R ,=HB] 3FO5/F"[=. [-&KEO0.]/ ^#9>Y/YF1HFTH@
M_Q]0,HPBSE1"1MB 8K X<>.)2SL>M> N&*PU^-Z&=P7CK/0):>LM40SS(/T0
M#1,],L,_[G:%98_2-"DP5F"LP%B!L?W!&)/)!$ RI"(WB(>$D98*W!A.I5$L
M8J?951A+1D86'$5.!0\P1A-RD@K$J>%"<D(TCD.$,3-2IL#8 &#L6@_[COO3
MUTK#[7SMPW:KCZ4M_-%1#K@V?_5O+^B+QZ/B;6%K7W2]%K6.A24+,8M\%_D^
M7I8\<F+N.0/PV5I8>W6[WBUGLW',7:3LN-N\2./IQRK4C1]/F^4\-B\'(!E%
M61?]4I3U\1*SR'=AR8&QY)$3\\DK*)![]S?X"MVR646!G&C!CJ",0IMZ,K-U
MR-'EJLZL&IO% /8ZGH>F+V?"#F7OK>RK;:2'<.T(X0KQ%!/B4DEDC-<(8QI8
MTIY1[_=1,>%MKXY^!?WT<]Q7A27"Z/#VR08BH261HP#% (A9@.(X@")II;P-
M!AG*+  %8<B(Z)$7UL-7EAJY4UKG/H4%'@8HJ"R%;@9V&&'/S>J+&_E ;J2?
MGL5J83^5]GC%0ABN_AD &SY3PT '):V7#@F1N^APRY#6,@#V4DV$#%SB/7F0
M61.]SXIHO[8!$P,\S%AD\\ I5R"BL&&!B+XL*^'!X02^HZ :<2\X<L)XQ"3Q
M'  B<KF3O'\_W_&!((*P4AUN8.[C9W<A2TI820D[6&@O*2,E9:00L\AW8<FA
MLN21$[/$\H\EEO_;+[]7KYLF+IIJZA:VGL20^]RNV^SD"/\X-\.JQK5U];AM
M0CU4Y_GH@.!Y^8DE$> X@CE:4Y5D4 @;BA%WU""#I4**>DVD]<+X^#7Q_J99
MU"]_RU-%OR3T>Q,[!?9+K[_>3E8M!WZ<SG_*NNNG2]6UKW!/:=MW]*'8@B8'
M3<QGBR8/ZE/L%3[^[__1E-#"L0..DQ?7[,E<LU^7<S!C&AA/K@@[G\Z 6A=M
MY=A<-':6H^[M7_5D <9.[<9P9=UV2.I\..L]+#,X=C-[8>';H>JU@K,'3<QG
MB[-'YK7)P+BAGN=.*@EQ[A6RG 8DF67PD?6*[I2!O;/7]FNOQEY/P@\K);;6
M<_#AVTM=]K9796\GKWM%]FNGQ_;DPBE<=NR+"U>@9<#$+-!R'-"B&5/,68F$
M-QYQK *RC%KD>!):>4 )QK\FNVMHT"()+]#R*$XN_)+7[59"1%?->N\^D4MA
MO9VNOWS_YU[X-:1XBOG>J37R[6;?/OEEO8#7^KODG<78NK=G,+H+N+J:3!?P
M\,4T*Q'P^)N8DR@F;6\?NX _4CVQ$U_;,<P%/LBZH3G98JU0GV>.^AO\NYKO
MO]KPP:>7]%4:QT\HU//8RO)+(,3R;/(JU,UL;"]>YF]W).Y$@'CE\?>Q%WQB
M%'SR/TO05>EB-9?V7A0GX=5LVM3MP^=Q;!?U>7SEII\R*3,QUH65/STT8/0K
MOQE/P:N_>LWQ"&QQ*R:0UZ[?Z3KHU8^ZGHSK"8QH8>>+EW:YF+[:_@*(WWT\
MLQ]B%P!#-@$17MKQ1WO1O'KQUZN,L:VJ\T)?LLK6DNLVM608*]LJX[NLZU.J
MMRUQ]&/;-'D]X?;^IO;?O-LW?W%56L4U!'\<H;FG7'SLN,5-Q^%AR/LN1WO?
MG]:3/^#24076S\D=H>2K*=,:@JV2_N=B^L^UDO[GII+^YTI)#Y6./Z] YLT:
M9-YTXU^1<Y##[A#PQS4"OELCX"87;*BW.XQB;?'_O#R+\]JO,P"<YXDK1+DS
MB'NMD96&(^E]"#9Y99C<QXF_7^8?[*3^E\W2_F;-2O 'V/N_SF.3$]/SG[^D
M]?0O9__].DO]/8SBN_'4__&BBF#PS^ -B_DRWDYKD*^PLWIK8+":(W-\14ZJ
M33JW>P[? YWF]:S]>YJJ[Y8-Z.*F&;0<5(^E]&Y8U4&X"YN[8OQ$,/;-U2%L
M4$ ^&6<_ @16WRY.8Y6WH"E^]:9S)=J_R*N_5&X.UX&NARMFTX]QGID\U!^R
MHU(MYG;2=/Y_9G_ @[']6,4)?.3C>E>NB7XYKQ<7N9=C,YU,XKAR%WD;[[S.
MMB/\%GW=P /0#+26SQ]MW0:Z;)F?WXQ 3YZY.L^Q N5F49B#23.YO*"[#T:U
MB!]  ]MP7C?3.3PASL]K#P1K<SBWASBZ?-$BVK/N&;Z&ZW.V)UBDS6D].ZE>
MMWN/_[F<Q(KA444Q%:.6*#V]JE,;*CN#67VJ@1QQ?%%=IP+NL*2/4:>&2JLP
ME\C%0!#/024CE4!>VLAH(%&;G4:\=][H #QT<?Y+>@-R, 5HW$X\V_CT,JST
M]N<?OW0.G8D;XTI#D+)K%_^I!N-7-&YY&Z0TVT' L$WU<3K_ RRBC_7B]."8
MEP8PI P72).@$==4(^>,0)9(JF-TDDB[-^9]_2&"S70E:?+RPTO6Q5\JKC0B
M^.9^54/@ELKVTQK4H(!K3^-X5K4JOSJ;SF,54P*T:%4X_)H#4N=QM,X*::.A
MU6SI %*JQJ8("GZZ7.1#SY?QKD%,[>NMDR<TO/=-C?>7D-KFQ*E73?6N7;UW
M,(D%V'."O:IF8[O(8K;*\FFJIOZT91,LIM-QTT8^:Y@?& R WM_6?ZGJ!5@!
M8_LAHWJV0<+2 _^\.YTNWLV .G%^3]:XLOG0+,'8V:"0/%'[M&D5?S4D%NXL
MH6PNM91>+L(4#*T/RTD#= 7EN.BBQ:,*/,M+S\F.,\W@AN:B 4<4K$E@14 C
M=PCH8ZAD*7B*=)!@.E&>D'91(1Y)M (<?JUW_'HK6%1,>12<BXAS1Y'E#".C
MK<2.8D$TO=YT:A/VWT[^<5K[TQ\F"S!6?P'^ J2^8DS!%W<!(Z+,L*'(MQ-O
MN67X+"&U(M'@B *6%G'/ S*<,60C92Y88 \?]F:0_#X!-3=O6OJ\GH0WT_EL
M.F]EZQ9\LGGSW>QN>G,-X4$PS')C9ITGMT&8RE[GQ'U; RR\F<,[W\.4XKR#
M&# DU@KMJE/;1#OWI_ 18&H$U6<7\+OMLT[/(RS3![N8SML :7_MXG0^77XX
M[0P7N&-2P30J5X_'F7\\O+V>@$/=@K&/%7C$TWD I)I/SRKKY].F@>_F=1-J
MWTT%'@UF6KNVU2*O!&!/.^!NVF  ^3_ C#^S?\2VO#V\Z$,>N\\.^.4SP'4&
M<RJ_/S8M*3(M;!._6];CL$F+:;MQ-)UMS+ UQ.P$S,6.*IT6SRXV>."^"R_,
M(U!_T?[:K<9X;%V['ADH)KE21O?B\[]4O\5FN@0:_P8 LGIU1]UNO[$+0H0X
M&T\OVC?F9&"[F$_'_;//SC*/Y\3@18W.Z^D8[-A,R^ZQ39L)#(1W_]/9BM5'
M>[&V*\\LN#[ C>T[:K _?/O\,7R8,>GR(6V>\5F.7L2-5W8&)DP$YO$K&"?Q
MMWSJ:C6)-G#2(=MO\8]IL3'N96/ &&PXM["F =;%YVV'UA#LQ.7#I-WIJK[M
MXUBO?_KUMW40*R_:>02M""Y!G6WJ&ER'SA)9!8\Z3AM'(#)P-*SSO+TH;Q-<
MR@^PT_KY;[>>?F;]:=8&((+M9-;7_?VG]77 :W%RFB=P18I6GHSODMJ[T%B>
M%JSU BC66K95<VIS+.[Z(!:,L35FNX3W_UR"[(-ZXVO%8S?B8C.8VZ0+;'6N
M?\N4U;M6@)LV)MB.X]MST ;9^/YUFDFP5@:3ZO5;Y&S>]?D8[2RKDK6-UZN!
MDVK#D =!2CGZD&WORUA=M@+AS[3X:(%Q;(,LZN-T5;-TET'ULVF(XTR[?/LZ
ME%%<N,&Z<!O.5,NK;^S9;-DISIVO>G3.?GL&QHM9UF_ NPU8&^ >H#;I;$/G
MMP"^^9253FRQ;OY'S,H:>&73#ABMC0#0V.U8\F=Y.'_$"Y"6-+<@&^ '+F$(
MW39MBXV@^;. @AS6S1]=7*&7WG7$&!3Z9)IIWP:MEXO3Z;PS/6"4&VY0 OS*
MKFJK>N#=C3W/-_A\<<9MH.1RT8>GX=IFD?%FEK=6NY'8>79J3T P0:B)V0X\
M>U 3>=:V A$\G<"B?\BSFDS/.P67 0H\W,VP?_63=3",K(\^S5I  \*"$@*H
M!@E=SGK,7C\%5-2R/WV3K]QXSPH^065E!0#J9!S&=8I=I!%&&2?G]7PZR6MW
M4KT.H572>;FV)]&KO*;*J0W 1RV9VVA^-YK+$'ZO(%-LFO9):Q4"7'(>Q]-9
M;Z+UE\, A^\Y<"8PU<:@)# XD])+9)T7B-GH1?#&^;3C3#KO77(N(.4#>!M)
M>^0TP<C+X+W%-A"%OS8.O^T_@GKVV2/(I^&:.'GQ[XN/TV%[ VNT&*UQL+'9
M3,^'XO,^5-OXZ2R&&I"UA 4'C"G7A05G\ZQ29Z "XB=0R*V:FF9+JK7>8A=L
MZNRA'^?Q;)K-I#<P.V#I26VW+92\&7( >D(PP73.&9<\!Y!D0"9YCYA25GFF
M([?ZJIX0W 6#M4;:&XZX"0[N]@EIZRU1#/,@_;5ZXAT88766C(LM1;'Y\<V1
M@QU=T=2?AJTK/IY.LQ$Q_9CK_C2K26YJA38;;RO'I\_.^UO[X[KL'R4<ME0H
MT.D\-P+A%!EN-/),"FZ2]9JJ?63_O .1;5V:R:+/XX<)_]KNIL?FIIR>]KU@
M><3P>G';P?Z3E%2@-A6(GE3OEF<PBXO6(KVD?W6Y -5J!1XLNTP0(J42'FD-
ME@ 7AB%KHT.::6:]DHJRG48S]^&O[VQ3-[^D*[QUT?W\JIRQ@TBLN6=N?DNU
MS!Z;"7@E%VD;U;<.+RPG=AG:@-L=3B\ > /RNQ@G.95H9N>7A_[GH74DVB!'
M%R[-.AZ^B;/69;H4U=Z8Z&*XK6OR^Z0=2)LEV:[BZU;R[#JR\_O)NY/J/UZ_
M_G4K$&1G,^"2=O-YOASW#LL\?EB.^R T/"D__EWG0Z[BU*M"3=DB.:M;WV;]
MHG<_O%F_ IYDYZ%SSL!VK<\V2+(.MIY4;\ M!D\J>[?K]*S\FIQXO%F4&#Z8
MG[5$V:R7D,?W9;)_CMAKVFPLSN62@IL[!>\Z/WFVG#?+K#9S,'KI3Z\G6F>L
MW8\[^HFUDX(9+\>+]1JLK+^5"WRS#5"]'L-#-[1\2_V><[L\.-M'U2\G',=M
M6#^/;#F;3C;&"A=>GWA>%,'7*(*.:\97+MB4@>9TNAP'6)X<7&TY%Y[Z/\M)
M9V6WK'L[YD_U>)4XM;C&-WD]F2SAAM]:B<RASA]SM@*XY_]_MT$"MUQ$.Z_B
M)(O<]]'';'17C(RZL.TZRKSYG+42N/)RT _Y%7]O=YKZ1XCBS Z6V]]V&G8Z
MJR=]UOCE-EH7%MN#+,QC&N>('"CW7LGG;9+EO-U"L"&3I+MP LS7--F0!14\
MZRR5*MEZ#IHPC^7RZ:O31*--/3IM-YC7Z;GP@%,88O;% 6)RK',!EB'HU1S+
M[,6CR\_JU.ZZ5'ZS%HP5L,&#ZVF 1[CEHG7H ;S6HZU;R KM+D[K]U_5[Y?C
MRG"S\1J8I8OM'F$.'K3TZU^<ED"K5BRS .7;LG)/RS8PW(UF-VH0S^UXV3XF
M P;,+),OGG>Q:K\F>#Y&U^U?YHAR/]R[K&<>9/_8>:9?^]ANG[C=2YUOP/H*
MP^_%.<-5'-<[WS=\6DZQ'MHI5E5.L993K+<^Q;J*N?5!++L1)KUE(.M>\2_Z
M8L\A'!6DU=)1%'22B#MBD.:&(YIP#,PI8]-7G<%8A7!^;^(OZ0=05F==.MA!
M'>][^%@-D">C\II Q3O;]LXZ9]^NCCG>UQ7/%V5O+)M_5P(%G573;@&O<\KR
M+GS.8(NK9>E"+$VS/)OU.6PY:\>VZ?^]!9@]I1S;.>M*/L)@;5?5/]^Z4;J_
M]Q9W+Y]G,VO97Q _S?+LFBHL6XOK\AUMU*@W"G_I,LLF'Z;Y4Y?C?J/->:R,
MQ#X'9B..L)[9J ]4K%[2W=&3>UW $BR66)_GZ%*?<PW:<#43X)U_K>]85?BY
M4A>SI\6HUWVKE,"F#KVUO$FAWGCO4WVR<0^DZ*[JR3):;[%6>==_M!E1RP9K
M3\K-!*VM5V\NQ\IQSZ<(XX><%6%SAD>?JK'96WF#4B&F.,\QJ.Z+ECO ,%\]
MZY*(X 9-/^;X5)M%D3.@:K\<V_GH6O?]-M1I71*P^?^G9;WI]:L*%\S;$K,]
M12(X(AV7^3Y"M\5M4QC,')POG]-'3\"C7W.0:\N?MGD:ZV?#>$YK(/^\32+)
M2S*OXRIQ KX\!S=INFSZIW;I,: PHL_#7 5+@#7S.<T-D:KA;7%<Q_.X<I:
MMYIIF^$*@A]Z1\;7<[\\ ^F&-^8 F5\L6Q^S\\!\&V<)=<[\ZM)8%Z?3YJHD
MMQ&_[J(\\-5M+B>69B?0MHE?UZW0KE?:3^@:!W /H;;#P+Z[;J6O\XPG<;$E
M2BN5V1,?YM)JXXT[+SGD-#8KM9+3?\9=CO.X_B.V 028</;;.RX"#15#*X&@
MUMNC'YD!;)L^.&]CI:V&V$IOZN6O:2,9]MS6X^YD5[OLYQVS3^(JDS)G$0$G
M;6K3WH'/@C9O[+AECOBI/Q8$DVT?!Q"54\3F%YOL.,J91EF^,Z!U3UE=W^FC
M4?X;@=,X:7,^5RF6J_RR#6[,BCNG+%\R9=6'@5JG?FO**VK$'MY (#^NY*(;
M['1%S%8CK%>N7X7>^^]'W/6PB<TJZEW/V^7NEGZ-?-M$[U[70F^;=;N*%JT8
M8I=7KE.UH^IC/HC0/PTN7_HN#-]F>[5;'!DD-E7[[3;;]V=].ZZPYMX@IZ3+
MI5X=,@EL_J"8QTH21C39A_7]9CK)Z]^M_6]U\\<;($>]R+\54_R*@MJB5<NU
MF4R/%)6ZYYBO#W!O>N?#]!?:AX2L"EIJOVSA/8=1JM:4?[0E;Z7A,=?Y=JO:
MFAODU4;)H'J2<X4[=Z95SK-IOKCNLI97UN"&*NTJ\5TR=&O[==-M\XK[(ZIY
M*W0.EE$;V,Z7Y(#U.D">72-0L.M-KFO\@=[(FML0-[+DM\+5;6XM_-?TJ-%"
M:/.%MRT.("^.8(6MY ))2Q7BF%MDO$B($$&H<M$ZOE.P.RCLC D1Q40-XD$I
MI)F*B%D1C<32)^NNS8M;\\);8(5ZT9UF>+UHS]R] ?)]W]/U]3S^O2=X#%LI
M=.LGU)=/N%,RW>)T'N.PT^E"/F>_Z-V,X7-0](I@:QAB)@3@A@060=0*.1Z5
M2HXZ[NG.<5Z,A4W$(I\B15Q%@8#1 C(R4&L-U\&EH7)0FB[GPV:@=A>P<PA
M[:8M!;RBV;9ZJYOL T^;+H:PJ6/K34L[UR^*R8)AGH]OV.L?O>/Y@![\C)*\
MQLSN[>K\T&5_]B]_^F/,L81QU:\Q. 'P=9LWLW&$=[W]_^/W;]]L91=UKGS.
M;!Y7+02 P_)A"H[-I"NWU)?NV";,9>83>"J^#R/</)LV+G=:?SA%/0W_%QS[
M'+"[<1&ZBC)7ZR$UK>-W&9;H0C-Y5[B+77QV%*N*2T/BR:V#PT,:V)<J4?WI
M !1P%"IHZI%(3@.$!XFLX@8Q80(1BE#NTPZ$,THY,[D[AX)[. 9'S-M\_MXJ
MY[%S@M,=1PSX+)^7AW]^N.2VUXLW=C[/V1;_!6[LS<7/Y5;Q<_&EOAHG-_?5
M& +;5&?=^?-1ZX9WOOITDOF%"CR"L625NM)?7> O*Z3N4'0S.@2V,HZ#*:<3
M4CIXQ$T$_SX EWD.7GSBE'F^@^N*NB@]%2A8BX&M@!5="B:W?Y$*_H];IO?+
M5G?LN,GRV@R;L[)*/P#V4-()[01&!CMP'!2G2*>HD221>1&#"];O:IT4 Z8,
M^8@MX@)[Y"0CB$3#'0U>)NF>E#T('SQ_C%;>Y^=R*%LOY]*1N,'Z^/K R],$
MTX82>;D:FUCU :E^NPPM9&F&"W-9CT7?(WU(W+0.T[Q>5 .VT8:O#KVV5%@P
MJ"1QH-ITB,B%R) C%# O8L/)SG$B%8*(6F-$1(P(S#&/+-8$[M98>6,2#WNO
M![KCSL)4!ZWO+K?)^\A=GW4Z?)9(SAMG%$'.YR!'!"O*4@TFM\8!&YNX##OI
M24%;EC@F2 3, %6#19:$@$+@"F,;DR?DBQLDO\9Y_@ \6K+%(#.P1M?(B.@F
MF] O%8T==O&J;ZX<2[D$PFDNMGQ=S+>K>]0KYE5JQR3F4@N+W5,%AZ""3%8T
M\#\4+7?@!YJ #/4,T>@XQ5+:R/%5?M.,"ZK!R'<T'XN.(H!%I@+BUE-G& OP
M5U%!!ZN"+'4\1IL0LT8@GJ('E@!E9#4H(>LD-;M5JI6*GB>K47(,5%# "AFC
M&;(*+G>>,2G$4Z@@,NR"B]^,-G30D ;VM?KP:;V$>S;('JJ+\%N?LC8D!KG<
MJNT/\W3>8Z[Z<=KTQ^R*;_ UOH''.(G<'$ 1#1HU2C $A4-&X)@2P8R'G4B:
M40),0&) [5J 8YR+H4H3$?76&)[3:_SUM4<^#\P%EP?!$<H30Q587&#4A[S_
MZ9 #EP!I':S$T@49=W!9X& <N),(?$/ <BN!BXBE*(G K5(RT-S_]/%QF0Z[
MG<077(-5#O')6OL-:?!?T,1\2&,]!$V<I,$X4HV\Q2!#!)PE#:H9#%R? @='
M"1RFJW)'+<@G#131-D-&9E-8>O"R?*+)9>TM'EP3'TZYN(-3Q2E2@Y7.$9?<
M92XIFRO+)Z02X3ABH2G;J3,5DK7848L4AQ\<.XF,HCD!2@-/8'"IP^X^1E'%
MWQQ(1A.87CHF3E&D>7EUVZ @Y10YXPUXTBJJG0UU&Z27(BDD"# /=WD[C&H!
M/T@0&)A#Q"=A"3+LW:R#1N?<.*5X27M+8]'4.(HQHDG@'"X7R 7%4(S*DD"4
MI+N9J$P0FX\AH$ D*&^=O20*_A+SA!@MG 7#N'A)A^HE46Q-E#(ADRAX202,
M+L<214(9<(_S@1&R8ZT1;20@-X"X,PZ\).:1(1J\)&RXE[GRK]O-0'F,#10R
M:"8Y7CU<?*0[2ATSW!C'<Z@)'"4N;$*.@&(U5)&8'!66[FPC.<IY(EXBRJ('
M/0Q&M'$@J9PHD9Q4&AROXB,=K(]$.0G  Q@18W.ZOHDY;TOF<NM)@GE,M&<[
MT,PBW,7 P5:!(6[RH;_<L4M(&6PD4880G\1'&G9BZ<'X2-H+S45 P26PO 3@
MK!-&(<!G$83&+KF="*8A(DH'AEJ,&-C(*HYTC '1G#F3A+91/<W.XG'X2$,:
M\QX.=9;<PLV-PW?+7!P7P.- #O,.@0G[?<U"L5L/9KO Q;B.?:^I52^W26NV
M97YL5ORXG3@ KUOF&BR@C.?-3KT86S4PA'%<WYU/2>0ZC_#VOF0F2%G<>LI-
MRF\VG\[F=5S8MDG]I)G.2[&2K;7\_K+JTB$%JO(IO5CEIG_59%IUE;V;FTK9
M;!8.VJQ(WC</ !L@-T-SEZ6Y]UQL^&L:7+A L'$"3*;<>IUKSI&QS"#!#0DV
M:0X6\E?W//VMK9VRT7Q@/IW KUWKN^;GZ>*_X^*'50?PVW0FN%KY[S:S.(#.
M%P^OY[N5V&IQL;46U^JN9TJKMUV3T+Y4Q#1W5<QE;M[;3]7WEP7XB[;?+HR]
MUDZ@F5AWKO6R^,8&W[U; &3;7+OJNRG\<WEB^O6[[]8GINNF 1F__K;?9VTE
MYG6A]7>_KV_+KT;87!_G.E0&&\+Z;E)[1>45U4^JC0]7G1:[EK]M>X7<:B(W
M2,T]"-<%HS9;68PV"JBXBXTBV;.E \)6;MGDDEK9>EAT!?R 9OW]L;40\_^W
M2-H7<%R7RLM]Q#Y,<R.(%03/5VUG@3''=>?@+*S+%N*JAGI?R\PV8 ?DRF5-
M'E77Y[ KP;[JA;C5H*"KFM@_-W?YR"U9N_H#9S&"@9!/X^<)=/7.<FY-DZNK
M=R?^,PGMN)E>%M.$"=H/'W+7D&SZ;G;^ $*FKAC!J*O1V1K!N48A:(:MHER#
M8J';%03O =[V<9!2$OPP2X+K4A*\E 1_M)+@7UO;^YKW/C_/XI;'.>H>L29P
M]X=EW;6.JMLNQ)T?US=#SK'PUGL%^(PPN\EE-XVUJ4A$[\AN5;T)TWA9@<8O
MJOIL-FZ-I<L:R5??G[L9Y^Y-]K+\+-R50T)]N9JO:ZA1O*(7__Y#5S@Z6Z@K
MNR2O1O&(;O2(?LXV?N\1\=XC B=G[=QT5C-'&-REW@5XM^*]"O51H2PU;[:Z
M\_27HNK+*U)]^V[I@+!@"8/QCCC^RZJRZZ:9N>H]D^.J*\-YJ_V<FRYS.>UF
M<:6R>BX T1;"[FM1]U^ U=T7I)[V]6R!W"NQ[<W3M9"-^B)5G57<1<SZN]O&
M.5<?F?7":I1M9:QM.WG3QLZMRE?=S/N39UUEK_QAB"#Q]4JA-&#H9TJOI]:5
MM^W:&76UR2?+S49]JQY'67.!\FMZ[W17$5X7]KOA81MZ\C\M7#&_J+I GUK5
M@F^'LS.&&^_37:GN=>>TML-A#%U0?1X7\VFF9->&*7L_EW_V?E1;X0-4>&Z]
M&*;M"N27=AT 3ZI_Q+: VF4(/1_<:YI5W'>E@5-_<_OQ)K$R[9?S0V]L=*W'
M<L/G0VE(\93FXXTAZ>BU%\1B%'D"4P_L+V0#%V#J!1M-<$R$O?1<[D]!_CB?
MGJUJH_P#&'V5]G/;V/-MAGL %N+C=%UF)ZO#I_!OU^)A3Z&N!Q__EX*)*0UB
M='MO42US@:W.U<KY,H0)Y "_D+*&$!%#L/G$W]>+XW4RV)8J>CT)/_5=.R[>
MYU/BM^A7_8!ZM971X1J<V8-:[5>"4;8N]+_JY-+N:=ILV8S;;HK?M@'1Z;(!
M,&[^\G*#C<"U;__WMT5[-/^:[)DV)--'1_+<\N! )^7+T=A>@+G87=*-DV!\
M@K]970_T&=M9$U\V75^BN!WI:.][L1X##&(=,\J=!SIN>+EZR.:5<&E8XUO[
M8JY.!/EF,Z*SBE"T(9V_?N[>>]^'3W*@_/)_CSZ $\X??\Z$/[,YFQ.):9GF
MU[_S;W]=S*\5]SY0JT%#.NO_^-!V8T*]>DWM_U[E].LN+/RR"P[G#SZ36K=5
MU>/:H6^'CW$;(^X_Z@*S\,%YS$E%=MP_[JP.81QW-ADV[NR#N-WCKK<(]7[W
M"&YM[]\W!KP(5^@'"Y._;DOM/@0MU\'XU1;.;-$E158KK!T,M>]MNMX2Z/.I
M_+]/VX2J'[82JCZ_0H^\*IV(8C:<=7D$*7BF6J1_PY_?P.UN7O]Y!%9E@QKP
M)E)1,X>I9M[5GXJ2&9R2>2QKZ<FLHVN*KQW9$FZK,3HH-38$ZC^L6MM,.3\
M#3:$!2EFT]>4BRS*Y*B5"2_*Y-DJDV'3\PE\LJ)_BC%3]$\Q9HHR.4QE4HR9
M(2F3+\5ZVN2!ZV,Z-X1O=B-#'@B<_*MKEO3:N3V* MOOJ8I[RM"M%O"[=>*E
ML^.<B'XK^;GO*DRF1[D&MR?WGQZ4O _%Y-=JD8<D>?OV!^5[+D:<J<+LMV'V
M![$MA\;C3T#7QS/DGST+%WU]X/I:X)$2M##[@/1UOR5;]/5C!BH+CQ>%?A0*
M_?JJJ))*ZH@E",?<@E-ZCZPB%GEGM-)6&NIV:MAKPH7RRB I\HD-FYMQ.D>1
M(1PGRX@7/MSFQ,;ZI,:>FJ%S/J*,W5@9M<CW #"L^!S%YR@052#J#A E7#)"
MLH"BSA7<"8_()!.0DDQ*ADV@>+=1O:0I2:Z0-0D@RBF.K!6 ;=X3++AT%LLG
M@2@ZPDH5B'I:B+K5+LD=4V)OG_UZI$"W5TW0+>#FSSPN$,5<<J.Y[Y9CD8JO
M2$0HF'8O3J9D9#@K''ND''O4'D5AR,-CR&-4H7RD]>VVC@O''A['#DJ%/OK&
M0N'8P^/8(]2QUX=>+)5&"!*0U5XC'BA#VEB%9.2>8AJ5%CO]3/=5SVD=>GFS
M/%MV=7_?V(4__7WV.N0Z2KG,W_MI7R'L35O%Z.WD[]'FZF"_I%_GTP_SV#1[
MBML(/&*2WB]N4R3\\"1\4)A4(*<PY+.!G.BY4,EI% $_$%=$ O@0AY2GDG,I
M<9!DIX6V,H(R[Y$43"'.<$3618N"8"+R8#U6]O @1XU,/EU1(&<H.P+EW,2@
M=@16Q6%S!YT/$YA-J,)E!\&V"5Z:3\\V2EV7$Q=/C9Y#DXHCA-5OB1@)=KL=
MAV?/Y/=-&?G+07+[47LUSYZ7!T75HK#OH+#-2 A<F'R("KN<N2AG+HI&+QK]
M;AJ=LA'7MZN,\6R9?)O^H$<\JC^A4QAOG+S\\9]"JDASJQR3HLG;2!%I1CW"
M0!TMHF6$T_V#P_8_AR1&@X**H>BL@Q>2@@2'C@1FA 4I3/X52( EIR8P"B"0
M=W>B\TCG<XJ!F" %IBD&_MA(4$X0'.]^P61H)PWVVE_@\&#JX07@Z^O['0U>
MZ1$CPTBUW7,'AP..2CT?!#B>'*BBLXO.?BR=+4=2Z*%S?='9STYG']U9BJ+4
MBU)_+*7^-?W-OR+]UDG,N50<>1T<XMXI9 (1R&IEK?%,.*FNIM\:R8E,@B!,
M*-S#6$"&"(D(4<:P2"1Q\4[IM[VG_MO:4=]32BU5(Z'),%-J"W06Z"SN3D'&
M@HP#14:CO"?."(1Q(H@G(9"+RB/KJ'5),>KL3ADJEJ(BF$7$:2Y=Y:E!-F@*
MX"JE-X)*$?PPD)&,!#$%&8>'C.5DRM!WFGZ8Y#D=QN&2;5FB)S0+4Y@NW3@.
M#JF/MISCO1?A"-&<LY%@ \]]_NQZ#0Z"GD6JT%$[:\-D]((.!1T>'1W,B+.!
M9\\5="C'9@:U"S9,22CP4>!C&!5F8/(D><L0#\0BSHU%\!%&5'ELI0L^<GHU
MD">X"P9KC;0W''$3'++2)Z2MMT0QS(.\6R!O7_7D>_?IH.K)%\0L_E3QIPH@
M%D <!B :P#3O D,V18PX$019$2G2/#%F//$V[N1\)",C"XXBIX('0*0).4D%
MXM1P(3DA&M\MYV-?@-A[C 40AP^(6UM;\(>%^?[[:NE^7@)WU![^#O7YO_\-
M?MPPS<_-;,WQ_=-ZAJ>6&!6Y1819B<"TLV#718:8#,'[$)4).S4&[U/6=KU;
M>V;K3*U?X[QEWHF/OSB@K\V\^<.G6?2+&&#L<,DOZ1U\VJ2.;]]GDKR'07PW
MGOH_7E019&(&+UC,EW%SY=L5JR<!R/Z2GPC&OGEU,S,0^@6J;?-#>_D&2^1"
MB'6ZN*^>NMW"W9['WI]&T CC\?1CWH1K>:B"-S;P;5/-5Y2O9I>DKZ9KVC=9
MF;0+G17%TH['%_#7V5F]@ 6!N]OE:RK;5--4?4W>P;YG_9_+2:P8'E444U%]
M6T^JQ>ETV=A):/[R<D/@UM+5$:8?=;_ K:*RR\5TI8#RR/.K007DR]'87DR7
M_27=* @&O?/-ZGJ8_=C.FOBRB3,[MXNX8IU.1;7WO;AV\_J\;NI.[[]</>2F
M[>KNQ5R=B/S>3YF4>8P]+8!+/[UZ\=?/W4KHB:;WO?>$\_N_EL@G>"TY>8JW
MWO,^<__!WNJ^>Y[3[7&_G-.]RSEMJY)R3D5$O ,S$CN.7 )452(:)F/$6GRA
M8L=76K<=SH)BRMHZ*\9[E/4X_E4<8,2Z$+W0M##RD1"]T+30M-#T^*KT/$Z@
M^(DX\]G$>B4&8SQXAZ0F"G%*&7)8&<2<)E1HE9CD.\VTK:'&"(JL#PQQ8Q0R
MTE,$OV"L4Q!,AWN%OO84\V5XA/E #R\,16H?)FA;*E\]J$>MO3+268$(E0EQ
MKQ5R.7%!NQ@2UK!.23RH#@$G6A8GNO@>AT+T0M/"R$=!]$+30M-"TV*.'P)#
M/AO?F0:"/0X!&6L"XBPF9%R*R+!<-"<%FHS821R.BLN0^U=R"_YV6]#>:HIH
MH%(J%5F4\BE]9TY&O#0V'K;O7':C[^$[T^0I$U0BY7*.EXP@>-$%)**6Q*24
M&'</[3NKXCL7E^-0B%YH6ACY*(A>:%IH6FA:S/%#8,AGXSL3SY161B/O.?C.
M-"FD*<4HJ2"X2E$PBW?JRC+EX!:!C&($<6$),M(P%*0QQ%(="&=/Z3M3/J)X
MH.5DCTY8R[[S(^X[NQ2Y$A0EJB/B 4MDE7,H")] 4&F*T3RH#GE_&F&5$NC#
MXD$7Q^-0B%YH6ACY*(A>:%IH6FA:JN0?',N6*OE?R/[6D7HC"6*&6L2=24@G
M'E&41%@J8XS67_7"I55,*4J1-((ASF- QFF%</*,2*>$9CN5/AYU!WM$"1^F
M$WY(E>N?VE'?TR;W9B4,D2OC/S(F;I96P">&?K,U(OR9LAS#+7#_?KJPXX%H
M^*&(2_%8!D7T0M/"R$=!]$>@:8'(IU^#PM<'Y:H_Y]*=C^VUEPJ=UW1E=21Y
M0SEBSFK$-7CC!FN7SV('S8-2D=I]E*Q^3+_=F)')ITN'[[B7@IS7%.1\E-J3
M6U,?8.')15NS,Y<;\\!:(#.KFI'P;]NAL9/AB1\O0PQ56Z8Q]D4JK9N>QZIN
M*F<;^ ZNBS _D)?85IO\,$7C&BX([0>;92J;:C)=5!=Q4>4+3JI56=T;RE>N
M7M^ <*8XGV]\T]6UW*XE:2>ALF?392Z?N6R+J:W>"V.WB^IC/1Y7+C_U?%I[
M>%B[3;_]D),AE<JL-MG]V7/M]\MYYMB6#4_G,59G\-5I4\5)9M"M51S2(H[:
M$;^9GL%8+E;"]:_-&JW R'^Z;L1W&,YC!."%)9AAC' @ 8 \4<#C0)'C1EEN
MM0G87 5R2JV5))=]2!: G'H%EV.-%*P1"5Q11=(-0-[<B-5R"ZO%ES+=Q,G-
M9\2&P!\5W#_.9$[SZ5GE^^+BS4KC_@Y$ &9YM\C*=-3JN -@%J^HEH1)Q' "
M9O'"(.-91)HPXH7GDHJ=\X8A "N9F%#D3, ]%JR^Y"2B3O&(O34BZ =FENLG
MDRSC7C**P *AB L,EBAC&N9F78@X4>QWBLQ[BJ4(T>33D@EQ:RVREC/$A.79
M"(Y,NB>9#.%6@LUM4 HJ[Z-QB:PF!KFHA?:2<\IW[/%@HJ66>V25-]ERSZN)
M#5)*YU.E- 1R4S;KOB:#3]0U4OSE#PY&SK^SI_;,@H2_FRX7I]7K! :K;<6]
M_Z U8>U)M0&#0YK>%R"9#VFLQP+)7&H?0621RLW=N;0>.<L<H"TXW<I@FL1.
M9CJ1TC$7'2(F "2#9D+&@I;%(;$HF55.V(>&9'G"#EE4#Q.2J0\".,0CS&DN
M 8 !D1+!*%(<L) T<+F#8E$JYQT ,964Y^"-0H91BKS%4?.8P+[#3X)BWALL
MF-/("Y8;H1& 9!<PTF [&!LP5D9?G0S@KI$B%S!P) (!K(3+L4 2B\!)2(:[
MA[8O;HEB!R,)UX/6D":0A?/W^?+#TEX4U_X07/NF_E0<^T<%AHB-5DR 8R^R
MK^8(6!&!$&0!$Q*V/!"QTU224:>C9J!UL6TC]!QI%;(-H@CFR41';VHIM"]=
M*NBURG0X_'&45@3++&%=1 IK8!8L+7)*2; FB6 R2 *.\DX42*7HL17@"TL,
M8.TQ,D'"([*CKW0RAM]4A/=AK8C :)1",*0M&,3@V(/I;(A$WB>7BPU3JJ^)
M4EB,!75($ Q61#($)N,94LP'3[WB'#^T_7R#&!-/I \2,:* RCHF6!GG44@:
M,V- )NU.?(XGB;5WX,Y3G5=&Y'ZRX$ HS!0VF'EF'MJ^(R>B./9#=NP_"\C%
MK7\ '1N$(CZ">I51*(!4T#,F*8VLIYIP#,J)N9U"Y\F G$>%I,S1>>- ^DUR
MR"B3F+>6,4P>&I#)R<TGRH? 'T<)R,I2"HL,*\T%8)A,$L%J:T"FA!T KTYD
MYUQ$E,D1H<&9USSW/=42.8 [!/\YH9+RA(LGP3 5-# Q!9LB90QC02&G+4-2
M2!%CY"'HG> T93;1) -2- >G,:?(.3!% :-E!D"/W4UE"O>'8=?%LPY7$JZ%
MK$&-O[CU!^;6EQW[QX<&QREX!-HAFLNV<J(3,D()%(P(A+HD?&Y^<L4C"#0)
M:1-*S'B A@C0@#U!EB6=0HH4LX?>ZJ/BY.;<NB'PQ[;V;'EZ?%$U2]?X>3W+
MPQU5.0L1+F^;]F9EU2QGL^E\435Q?E[[0[(OB 8_'9S)(!/XNTYS9%@B2"M"
MJ"#,,+7C5F(N"966(-;F;]I\N1<>S U,G,#!&W53_N;^(NT'LL4TI$&U_#R;
M3U-L&AB;'5?--"T^VGD$TI_'\71V!A>N>7CEL@YI"EL ?'WZ9_OS_ZNJS<;L
M_VKA^=-+^BJ-XR<4:M#ZF6=RB^?EV>15J)O9V%Z\S-_N9-V>B'K2#J@_)HI/
MC()/>C!>#:Z]%P'TO9I-FS:[\N4\CNVB/H^;[8#7^;N?'CH?M\\[WSK3LMT%
M&P_%D#!;J[I:O]/U^=Q^U/5D7$]@1 L[[UMX;W\!Q.\^GMD/L3NJB]H<T)=V
M_-%>-'W_Y4W&V$[7S@M]R2I;2ZYS!O5 5K;-M+[+NC[>2EZ3QKTICGYLFR:O
M)]R^:HR=_X6_X_S%56D5UQ <9K:Q?'>80P> ^67U9&DW ZL>P"M7OX\\63"C
ML$$V@-_L6;#1!,=$4/\DMUO2(S+NAQ:G+ E(CV\<ZA@<%\X@QG(R$0$;S^D0
MP-JC.7:IK+!Q)S-2)\&%$$CDI$B.P4RT6ECD;6"1LAA(?.@]!RI/\&%8A\_!
MPV"*$:N#S[Q@$$^8(,>D14P%FSL@,,S33F67J''2D2(=@).X80*Y$"3*I1^]
M$1:;\-#A;G)0/'0'JWY0DRCQM)(F,PPUY9CRU N.&'6@JY@FR! !6(<]<]Q:
MYNE.LBW70L44';)>@7(R*B'#I4+!&JISYF[D#XUU@I5HVH"8"'.AHP?GTQL-
M3 3@Y:Q-""MI!'@902NY$TT+RDC"&8I.ANQ_Y)0;Z1%U4D>1B!.)/TG>ZE!Y
MZ.X1K))T\>S5.X_!IGQ*,9#<L%H8L"UIWGJF@N?R@<Z+G:UG[AS'D7JD9'9_
M/(BGXZ#HM:,I4JZ\]P^]CRYP4>_#82)JM8<'"J195M4AG_KC7N?#-2E*\)'M
MKGKGFGIB/4'8"0P.#/!<[IR. A6!QQ@,MP]]+(&<Z /BH>+*/':IQ2?S8VX$
M%SL#+OC4EIP ;?(G?L+6/)(K6MB%/T7+V;I:A(<GS.LFO_3*G>Q$?/;.\-D4
MAK_;N3^M&.D+4*S+82P^3BN&+J+=*$$QCY/X$>2Q^E@O3ENR_?=T_D?UIEY<
M5+].Q\"OU?=Q9N>+EH5;A8=/]&<'UXK#N9W7TV6SD<7S^3$/UE$<KK3^]<K&
MP&HG\6LV&B[W)7OL !? M8GE"=N, S0A33A'% "$T8 5ICO8$3GE(H!7:2E<
MR844R#"ND8C@-"0LDQ4[QS!^M/7\O^QX&;^O&S^>-LMY;-[#([\;3_T?+ZH(
M"#++BFF^C(/?T_C8[;ZYZ3@\#!O\/%W$BI]4F6A52[7J[]%FFF4I;;Z&8Q]\
M['L ''DTH;.WD^KU\@.,*:L]MHTKJ^)%H?TTY:4^;Y<:=&[^I!/]#UDMPZ]-
M'>*\VQ\<U];5XZS ;=-,?=T^HU7O]:*IK/_?9=UM3^8GO;,I_CK-ANZH^NFG
M-]6W__?_Y#9BKRX_;S\@K_Y2+::Y3-$!V+O1LL2(-2@ESA!G/&>+F7RB7'OF
M& E2[NS_.)FTX(8CRW(UC80U,H1RI&4@@3,6@]BQ=]^L5^#-Y@*\R;O%=:IC
M>-W\ ,1>7%RCW/9D([-#"?=WE;$RWVXR8*[%-:J6G0E4_3W?5KVQ\_$4++"S
MY;CCY]8VLF#1M#P,M(V=(;*R-\ZG^<*6X>$5PV=/&T/42N;C$QI\>BIRF1-!
MD3(8>TJ<DW'GR+NSFC-PNI S'MC38XLT#PEY)3G&5A'MU^GD#2B.E[_&><ZD
ML1_B+^EU)EFS9L+7(6O!C!1;3#AKN;+G0D0WV?!+E0>5'/@9BV]:AAD^:S C
M%54I-U7G.1#K/-+6*N0H\XE[GMNL[Y4U>I?]O]8BM"^6H&+@WOLW(U @S2PG
MU(&+?G%2O3^MFTV8/;NTJ')10;_6ZEF7_93]^NKMV[>M4NH/*&S<?%H#&( 7
MEC&X@HGDL)*#6]U%]?K=FTI3\'0>B1KMDU_6"S" _!WH<[UM.:05'*YG]BAQ
ME/;RX9JVKUO _S[Z>.;B?!6-N&KC9FE9V[@W6K1M&EV^:+IC06R9L+N5/\/F
MM^LJG;DB9PN"ER_>>!N\Y4_X1*Y,EZW=F%3/P5@_M>.4WYQW/;8G%.(BSH$D
M7YK11]L5'07+QK7%2^%I+N:W1#N?M/L4S7*<[ZUVE4L.NGS)^*]AV:ZI1CHH
MD<GKD$G8SWSX\"RY(,IYB9C$8+EAEPM',@JH%QWCR@M*=H(A5/*@"&$H&(;S
M<9=\FC]'1+#CPD0FL*1/X%C(+?S.#6LSAN?>0$V<W+@;9620!B8<)<R ._"4
M3 )R<,&3M03L$+%3WT@YH7'D#F$/1."2,60HT\AJHQF5@44]P/E/ZO%AG9T\
MJ5Y[#Z.'"\<7-P>H*W]J@;!9J=Q2H1S(/JDB#G.J01Y=RE4Z;3X/%)$"?TK;
M:(F*.X9SXB0%EA3R[:&RG#RM@\X=V2S!WD<)+'ICF'+#)OH'6("_3Z8N[^]D
M7?YV,ELNFM^ ZA,/JK@E(_RUG&<4^<XV=?/3*D(#IG@]#6\G?@Z/BP"6[;^[
M+'S)N&]__O%^I<ELI"+DG6.'06!E,,C2Y%"">0?NM4AFMYR.Q\I8+W(0Q"(.
MK@0XJBF!Z@HT6I\893L54@Z 0-?O30]8MM=!E)TME'9;^K-)&=FOB?-8?<P_
MAB_'UA"P4L"/]4X3Q*D$A'$>(Z6E4U8KZG)6T14VQ8X*'GVNM6<S:V<VM0+Y
MJ(AP(/YAM\C$X-CTE@A,J1'">H,T5ASQ%$#C!290PI3J%$"XPT[LR$9/#8ZY
M1C"-8+5$@YQC.?R4 F$6))SO])L</GTFTP,3X@YYFSO:\W<7^<MF ?=W1>]]
MQFM@3NAAZ3XO?3 Y+\?P?.( ?K@$EHEW6>BEQWRW.OE7;;7N1[;?S^VD27'>
M_!P7#Z#Q<@$W;1Q!PN20*$T!64QR&ER@6#%L8#UVJ@DK(RCS'DG!5"XJ&Y$%
M2$!!,!%YL&#7[%1#&RI5#D[/+58S!TVWF%;3>35=+K*.NXR9A@-,;Q7K<,4>
M].O==K ''NE[O^%K D]/JU/;'(+/* +QWK.$&(8?'"S,W ;$(6\4HT0Y8<).
MT<C[] #[.PSMXN]V_D=<_+B<A.;UXHV=SR]@U*V^V=-.L#R4AB)@_]@L9O&B
M.FN)4B6@2NNGW+3]DJ.EU^Z_W&/WQ?O<BBFKGW<+D&@+:A:X-\"3?6=Q:8H1
MP0B,:J;6Z1"'O&DS)"Y8K+))CFWSYBX6\P'I\QP[S!*2,X=2G7/A:SON<C":
M%A"W]AL6&T+8";3O-=VZ ]I&9[<^'Z1_568,HEYMOJ:>-(OYLDUI&_5-U_*C
MO&U.1]G,")TW-(6GS/-(8]U::7#Q)"ZZ['S;B3MH 7N1OQMM9MKFU\-P-Q1'
M@/^Z32;XJ#G-V?YP(5@K>7[#9=GK*\JT/Z[-Z8S:Y/*,*)F$\_EF#B 6P'-0
MC'N#'0,K>1^.QML):-@/-9"]RT"Y#-+?E-G9^\'+&%XO;CO2VQ:Y>, .L4^=
M"BI.JDM:5QVQ1_"XQ2:3W,@.X!%)FJA%B8";!4YFCBY1A@BWP3'#DT]D'^SP
MSI_&L!S'7]*/=2YJ^E-]'L-5'GF?I?2V['&;D6^SQ_.UTC<8I%??;:"I6:ST
M<)J.Q]./6<%^VUI4TV4#&K3YR\NAJKUU7]6N_>=VT:6VP%!;5:DO<)1'EQ\/
MHITO1V-[ 7YI=TGW)H+Q"?YF=3W,<&QG37S9Y.,/@!;;Q8K:^UYL='I=K,L^
MG==-W04!7JX>LGGE9MO=[L4<GW#YS691IE61H;8JTU\_=R]A)U3?]][[WD=/
MV&._\D2661[D++=:(&^*25^C3(-N<-;_\6$.AEI O6+I6D*_RE&PKB+:RZXN
M6O[@>G5S@X1M54K+M="^T,*Z4^;7M;"^TISZYL[4Y 'MCILU;?_\/[^!F]V\
M_O,(M'>#&L#Y= ?]^H5^U@]#V>WFX/@D]P9OIN,ZW-2L_OG2'L0C?_UO+PA^
M<=^%N&V7]MLMQ#5$NV9A]'ZK0^[+&K_5NER;0+=7T;C7BG0J$K.!KLE7AFR_
M( Q'C"K'OWC#09$AT/IAE=<_VKMB0*^!D/9#K%Z?38&@_^IBW5U>1M5Z?/E<
M>/.76\(/O3?ZE 6\VP+^QWS:-,,1I6>-.D_K6.R+<G>S;?=ONA;=\5BZX[7W
MR_88;0Q;>K^HDZ).BCHIZN2.ZN3*AE+1'(-U?]L=EUW_UP/!DK_!_[VEJWOM
MQ.X?X+AU9&\(N[FW6KHW?<6K[M0JH&US6L_N9\'?B];[CS7LN[=+3_WK=Z--
M-,+F#J.!Y#:C ANDA8S(*:V(U4Q(L9/OJRWF#,N F,QG#$FTR#$L$/:>"\:U
M,33MY/O>N ?]>Q/3<OQ3G>)N9FY8SK.?_)#\0]:%5'?2.KZ2A2;3O3/0DPOK
M[>GZI\&+X*5X/"1-VU<_J :\H2J3D :$4B$JVZ1\RI!U-"$3DF?,4D;USN'I
M_0IVT\92;LRW95OYME\N<#+BZN;B2\]<2!_%1SI&4^3I/,[C8\*"%$-'BF^_
M)K?L*[ (.T\X90FI[H"8EL@DJQ'5WGDKLIFY4\ABSUBT$9O;#,WM"9W4B-*;
M*[ 7O7 OO?"%S;&"4@6E"DH=(4K=4 Q*$!.I !2()">?Q]Q)VG!$A#'.&0U@
M\= 8<NW9XGOA!=$CRGD!C ?V9NX9M_ULWE*)V^Y'RE_GJH+S&"Z;=RRB/YW
M*SY<#%[5#B5Z&RU-7!&,3"ZZP!E5N=:,0P;C9)5A(:2=,E-!8^J)XBBJW,G8
M4($<D1PEB6WBQ%$N#B=Z:YXX>#MPB3V.N-"SL7&PY-PK$\ QCC&7R$O("OC-
M)25$%!IKMW-2=+_BO->8+9$CQI\N9EMD\SC-D(/RA@=.R^-@PB,$B*<*U7I-
MN,XM7(15N9F+#T@KX1%))DCO?&Y/]< 0]+"A6CY2\NE"M0-7!R546\!I.+0L
MX#10<+H>.@)+24BE$<,! PQHG5N4&^2DL9:0@"/9B=#N&3KV&*$E(Z&>+D+[
M7"2S9-8.-T+[J\V_='7'<D.7\3CZQ=*.<Q>5&9"EA&EO&Z9E/'H6&$7$:H5X
M !VIB>9(>ZZ,!_8.;J>,N/?*>FY!AT;F$(],(!L,1=)$J0*/6J?=,NM##=.R
M$J8MAL[1&#H$$\\YDXB91,%HD0YISC7"'$P@SZ-D<B>U=K_BO-_4VA'6-_>3
M+*)Y!*)9'.&#IN5Q,.$1XL-316F-$CHD1A V1B*>1$ VIT4YZG+GA6"EV.F_
MM6<$>M@H+7C?6!1,*E': DY#IV4!IX&"T_70 ?"@F'84><4%XCP!:BAE,Q9P
M[(@,@>YL\.T9.O87I16J;.4--$1;DF@?(43[/G=ER')70K&W#,5B[7)>;$(J
M48:XYQY9&2WBA$7#G5,.^ZOJCQMFI -MF:0&]6<<1R9PAY2C.@IN!)>[7=^&
M&HH=;L;L'NL2'X1B?43-]Y4%EH[;(F)8JTA#0(&FW%P=.V3@ [ R*/'4:Z_Y
MCC.]7Y6PYW NP4-,NKU?<:DBX(=CVAR)5UUPJ.#0<8:-G8DT*LF1(U$AKI1'
MC@F+E(G*J:B3,>Z!D>ZAP\:4ZH)]);1<0+" 8 '!08/@#4<@B8XD$85RIT'$
MO25(1Y>;T#/.O"?!>_[ $+6_\+16-S>)'J1H#PN,GCJ$7;*,'R&$W2U=]_/]
M=-'V(;[2.K-M,#P$S3T(ZA^E@4%/:%9#8;K,RSXH$^, "D;MF\K/QMI0AE 6
M4T3$*($X50I<8[ VO%<L2,VI3SL%%P1WP6"MD?:&@[41'++2)Z0M&"N*81ZD
M?Z+0+Q<C8X:8ROM9-CQ2HZ/@4L&E@DL%EP8:"J:6!(LY"CR!S\P=RP 6D"":
M&T,)I6;G2-J>D>^!0\%\I.@04X@/" M+-+B 8@'% HK#<-:")$S*:)!S(2(.
MH(, =BB*C"D<K-)"D0>&K/V%AAD9T4'6(3H@>'J8^##\86&R0\**RW=_[G5?
M18ZKR:"A/K_QT_P3J/4W^'<U]G^A>A+BIY?T51K'3RC4\]@R]$O0"\NSR:M0
M-[.QO7B9O]WANA,!_)/'VH?C\8E1\,G_+)M%G2Y6XV[O17$27LVF3=T^O&OY
M=AZ!:3]E(N6)K_GWTR.E&_=7=)*V^JN7B_MJR7TO.,%;B[U:P-/U1D@_['HR
MKB<PI(6=+U[:Y6+Z:OL+H'[W\<Q^B-V>"+()J/#2CC_:B^;5B[]>Y8PM9=6N
M]"6O;*VY)MEH&\;2MN)YEX5]4MG=E$<_MDV3UQ-N[V]J_X6_X_S%57$5UQ <
M9K:Q?'>80X?;^67U9&DW]W2C-MF?1,DDC#BV'$ X"&04X]Y@QYB(_R0WOI=<
M>>^?W\ BN7G]YU%C)PUJ0#>EFU\> >)IHA8EXG+? &&0QI0APFUPS/#D$VE?
MON:GE@\R?4#G\!/!V#=75W*#Q>07B/(9)NOUVX!8:0V!+0)>T0VM'+3"W\MA
M'F)^!TPJ7XY OT^7_27=ZPC&)_B;U?6@_,9VUL2739S9.;C]VS+5WO?BVFW:
M\[JI73VN%Q<O5P^Y:?^U>S'')UQ^LZD[5K+0*H^_?NY>PDZHON^]][V/GK#'
M?N6)++,\R%E^*9M!W_T\WK4ZYY89#OL\,'8#K),GL;H_!S>/$L*Y/V7WF+UW
M[+1?-[8G^-Z=[1\LU^](.]M_'WT\<W%>,3*J**;\0<1CWQEP0UB7I^US?\#(
M<OR+-QPD&0*M'U:!_:.]*P;T&@AI/\1J<P.S^A5@:AJJZMMZ4N7CW,T7]L/6
M$$3OC4!E >^V@&W6U7!$Z5FCSM,Z%_NBW!/M_A;=\>BZ8R-O94OO%W52U$E1
M)T6=W%&=_'S/LRU%<SRV^ULJG3W=,;$WRP9>&N=5MT\YG32G]>Q^%OQS+'O&
M6)!4&H6HY 9QDP+2#@>4G"#!Q& UV:GZ:*W2/&J! K4!<4(]LC9H&*%0(5$N
MXEVZIS]QV3-R&6-\FKIG>]@&>>:)D_<4P>-.BN1"R,!#0$8SF?/X-;)8.91X
M2%KI$"6S#RO8^RU>)D9</5WULH$+:3F;-ES/Z=DP84&*H2/%4YTIL]PGKY3H
MVC[F<BU()RT!7)P5E*1HV4Z"_IZQZ&'/E,D1PZJ 4SDL5E#J6+FQH-03%V,.
MB0FG'?+,)L1=QH/$++@W*6)EA31VIQCSGC%DCTV$S8A(5@"CE/<Z)!C:JY2_
M]O^[K.<1"#A-BX]V'JM%]*<3>,6'TC_XUM%;3!FSSB&NK40\N 0*SE"DK%):
M&>Q#V&DXRBQ/006%!+,6<<$C,L0 IU-J9/#*&X,/)GH[W*85@Y#8XX@+/1L;
M)X:8-+$4F20UV"O8(*MB1,IX+1CA*8F='C3[%>>]QFP)N,5\B!TGBFP>,N$.
MRAL>."V/@PF/$"">K(&P8!A<:?"K&5&(YX9H3D?PH%/4G,LHK&(/#$$/&ZIE
M(T.&6 ES$.J@A&H+. V'E@6<!@I.-V2<^ CF/N9(MV6XHJ+(,9J0)18K[#!E
MDCXP=.PQ0DM'G)J"$\.,T);,VD>(T/YJ\R]-92<AMUZ(XW'TBZ4=5[/Y= 9D
M*6':VX9IE=0)E")'4>6X3B# M=Q;1)A7PI#@+=LUJADQF+F(, 8=RB5/R!BC
MD(K>\ABP938>3)B6E3!M,72.QM#Q)F%&*4;!NX XI@*Y"#^H$4)JRG.@]F'%
M><]]@;$<8F_$(IJ'3+CB"!<F/'I\>*HH+:7:!B($(IQDMUF J^U#0I0$'(*3
M%ISM!T:@A^[7RTN4MD1I"S@-GY8%G 8*3M=#AS01G!67 #H4P  6#AEL-?),
M.2E"LE$^M/.RORBM%$]WZN*YB&5)HAUNB/;]W(:8Y:Z$8F\;B@U$2^8P\EIB
MQ#4&]6>31BH1)J@"U>CQ5?67B.#*!(M S7G$&1/($&T06-F**&O@MG PH=CA
M9LSNL3;Q02C6)VL@=><"2\=M$1&2.(TX(L5-1!SD&VF"/4K*6VL(%3*$AU4)
M>P[G$CS$I-O[%9<J GXXILV1>-4%APH.'6?8F+,@DF< 4P%30#K+D0XX($M$
M%")Z)_S.^9(](]U#AXV)'&)$X&"PKX26"P@6$"P@^&3.&.68FL@QHE+D4D$L
M(N.20LQQHAT1A)"=G<T]0]3^PM.&/5V-AR, HZ<.89<LXT<(87=+U_U\/UW8
M<<XU[N6QLJU CJK)/4MA'R/UC]+ N&U/^R?G]ML3^A$+1NV;RL_'VL!>)TH\
M\BSF/"J?P&C@&F$GG',R.>5WK U-N%!>&20%YXA;G1!<2\'DX#A91KSP3Q7Z
MY6)DU!!3>3_+AD=J=!1<*KA4<*G@TC!#P99IYK"TB"0,/G.R"AD.0,A<B("#
M/@BSDP>Q9^1[X% P'2DC"Q:6:' !Q0**!10/"12OARR1I G2@'<F/<^'7C"R
MBL$/BW52CB3A=UH5[1FR]A<:9FQ$-"WP- A7;2L^#']8F&R7()D?44^6ME^<
M4)]O3+,=7CT)\(Z7_$0P]LVKFV=.*/Q]S\G_S[)9U.GBOC)W.9[/O?_VU'R[
M$:#=;&\=/\WBI(G51]M4=C:;3S\!KR_B^*+Z$SXQ%;QUG"_+]23^=)W9>X?!
M/H*Z<4S1R!Q!3GJ'.+4$&<4#"B&H)!SV4?"KZL9X+:F/%B6C ^),2^0\Z"FC
MC(].,96LN*IN-FW?7])5C7.CNI%;ZD9\R1H^N3DE< @LM68.F$6U.(W5D :W
M.)W'6)W!WZ=-%4'>0_6?RTFL&!Y5%%/1<C3\PH<TZ%$UC\TLPE*?@P2>5/<0
MVN'+J.4X&,(L4LZDW.1,()UB0-1K+"/#T?N=)F>14RY A)&EV2004B##N$8B
M8O@42Q!1\T0R>G.]J2%PU):, DR=5M/4RFI3?T*M=%2S.*^GX?-"<C*H.6W:
M!,-Q#O<]S5W[!RR9>XCTB^L/U3B5E-4R(DJE J@D$;GH$L*1D1"53B;N;*/<
M1PS?^=,8EN,X39^QT7]<+I;SN"FQ/W0J[GTVZ][#"+X;3_T?+ZH(4CK+9MQ\
M&5\\DEG77CY<R^X]2'.:CL?3CW!IU=K!%;RQ:>N I9:P.]OSVW "* ):84@B
MOJV%OJTGH+.FRP;44?.7ET,:Z*8N6CLCW1KT(^MYJ77J['(Q73EK>73Y\:!Q
M\N5H;"^FR_Z2[DT$XQ/\S>IZF.'8SIKXLHDS.P>T7W%IY\ZU][VX-F'FO&YJ
M5X_KQ<7+U4-NRH3I7LSQ"9?YQ9\RO?(@^PF#1'QZ]>*OG[N7L!.J[WLO/V'W
MO?5$'MA;[WL?O?]H;W5?.3H\W+RKW^*9S2 WS_HZJ\8A1$ '0>9AQ.R/N,K%
M$1.XL&MAUP,B\+-EU^-HE'@ NYWW+!=RW#N9/D8L M.(&P(_.'7(Z801)4GB
M0(SR:J<&D^ N&*PUTMYPN#$X9*5/2%MOB6*8!^GODGRS&Q]96X2_I!_K','\
M[UR*9%\',[5YNFKZ Q?C<LYEF.NR5TT +I8L1L"@C(!"S4+-0LU"S4+-![&Z
M!D[+XV#"9^,S)4Y#T%0BQJQ"W!&##&,2"1SS-K)S7NQ4:7MXG^EG>-G[CW%\
M'O_>I@?MK4FEQJ7YV$#=I;(]]3CNDAJFQGVVL%^H6:A9J%FH6:A9K*Y#9<)G
MXRX10B7A1"$M(D:<D(@TN#TH&4^-E<Z;L),9__#N4MY1>O]Q6KRD Y+7LJDT
M:"])#U/1/ENT+]0LU"S4+-0LU"Q6UZ$RX;/QDBR!QPF&D3"Y<K1*$3F1%,JM
M$ AC@2BKGLA+RF?.]^8G*3'$JI#');%E-VG0?I(9IJI]MGA?J%FH6:A9J%FH
M6:RN0V7"9^,G*<NMTC8@*EA /&*)C+7@,1FM(G6>1O=$?M*/T^6^SBBQD11#
M;)QZ7 );MI.&ZR:]/XU U 2*;)CZ]MF"?J%FH6:A9J%FH>8CVUZE#6II@_HD
M&U,VT< $1I3GQF0I"609H4B#O\49CTHX\C4.5],LZL]X6]G!\E?ZLKS.=N&>
M72["1XR3 ?I<I4=JV;X:CE^VTR-U"/I[$&0>AIE1J%FH6:A9J%FH^:1F6NE+
M]AB>6NE+=K4O&6=88RD1H5(C;CE#)DJ/L%%>FX2Q<3O=#_:\.;;'OF1D1&5I
MFSE GVRK+]EE"XY_[[N2?;%;V9,CRZ,T-;F^08G&T0=B*)*!2\1)$LAY^&%(
ML 1C3:V(>VE0LIS-QO$,QF?'W]FQG?CX[C3&Q?=UX\?39CF/S4T-2*I^\6)X
MO;CMD/]);L?=\LE:SWWL@@=N.@X/PP0_3Q>QDB?5]W%AZW';?.0-J!1;3ZHW
MT]S#I8DA_]8&;W*KX:I?EZI=F.JU]]/E9-%\32.0!Y]D=87);UCQS[WLQ?6"
MP0S#+&J%O"<.F)P$I(,%IK,N41:8549_C6"T<<95VYY?THK:OT4?Z_.LSEY/
M JS.(N-,"V7K)CWN\TUZ]L7L3]>0IWWRRQHT1>WOP LK$E;S-0W;UEJ^IV+7
ME*<951/@[ANZW1Q3@QG)3SA_[,8I_.31>[6<F'NWT1GJ++\4<M9WSP2Z5C)W
M+99;F:]?LE6_OJJTWI,==NE?/;*/#TN2O_ZW%_3%L5+QWD; G9J3W<N_.G32
M/ET0JE"NB/9#B_;W8)^=N3BO&"GBO7\F+<;# 2_>PVN8_25N';(.NG=?OP<A
M_)VCM ?/XD4Y%.4P9.7 BW(8I/%2#D$]7;+=-0'6I]_]'""9#RR)X1DG*!CC
MO"4LHA1M0EPPC@RC"CDEDG;::!SY/A(4=G=W?HZ+-\OY' :WI_0$JD:*\ &F
M)PQ"0$LZW/]C[TV;VTB._.'W_T_1H?6L9R)0=-V'M.$(SK7/..P9Q4C>?>FH
M4VP;!&@T()'[Z9^L;H $")(B01!H@.6#(L ^LS+SEU=EONYRN%[0LJ#$8:)$
M(C'7E@2DE/>(XPP0A%M$J V4$P5?K)4":,*%\LH@*7(I@-4).><H,H3C9!GQ
MPH<]H 0Q \E$08FR9>B0UF6K,KXHJIF7@Q36/R(#Z=5 $J8F:D<- FS*NV -
M0=9ZBG!DFD7KN--;:3NT$);_K:=G/\P:>/\X::O1MHY,;" 4*\!TS-)9W)>#
MIN5Q,.&K@0CE>*2"8J1ECFT9II#F+$\\,@93PE1<[^"]B=>R.XB0 X)+A*NG
MODO)P.PB S,<CK^T>S1 4"H_B:&>5L,Q2-O._)A=Y(X/0U"VSLG;)>T1 MVW
MS]F+] PH]<(HZ33/8 A0ZL'E@D\*D2!5")@H*=,V>@Z!9,,3+FT!6HC[S^/)
M#ZVP_[65]=.0-^.<;P]9 >WWAJN[J8GH96#_NWZ:R,5/*Q!8(+! X$HK!_ D
M9<(4!2,IXE('9%E*2#BLL, A*;X&@4_Q)O<.@53M+RU6(+#DT K"EKY&O2GV
M*'V-'@1#+0,/@'I(26L1I]0"&&J*K.)8"< Y0=<*0I[L#WZ](\26$W!XH'@?
M,W"OL;]10:>"3@6="CIM@DY,I*28C$@0 N@4 [AJV&+$G'0"6T\#IL]VU7:-
M3E0,N.QC\N\UHM-3NN]MM2F7(-$G0RE*.+.I2ME^HF"')2)"(CQ1L=;\?Y-N
M=3_&%(%[@:&;:?.#O6A[4?U?#.\G\<+6 5C]M^G9/,W=W+2PNZ^#W:.6NNVW
M]?C5/KCV7'/:5;$;4=>TO;G&F8R5[U3%O"+SOMY<+_Q:3^XW=W>CL*WU!2M=
MP$H7L-TT\GA,5.P$DWJ+V_.[R]V!5T>VG?E1._:/EK9][1!VM 3?DQO](O1\
M6?KM*0A15,&+J(+G=10[6J*_WCYC!ZB1CM8\>7+EQOZHW<>>8R](_OO"4T?-
M[D5=%'5Q*.IB@RYD15V\O('3KZ#+HU.[K\4PW:*:*K3=KMXI]-PK/4M,I7!F
M/SGS^.FYKWKFCKXO6S3VD'8YG-VUBZP_:)3S\[IIZO%H@VVUZ_3>]@;SGE#[
M1:O&=L>UKZ8N#"OE?* 6<1DEXC$I9)G$2#%-!?58*K.59J>KQ3/;;5\W$(9N
MH0CLB&5T5_A_I("R5YOJ*!FR@,8A@P;A2B2G/++*$,2)XLAQ3Q!5+A$B-2-X
M*UV$7A0TN%(%-(ZZ>=!18])6Q7Q1AMN,T_2+G70C<H>U;VMRBU <J27U:O!*
M&FIH% +AX!E@3V+(:7!WJ.7@_2@F\'J?@B=OS9S+T(>Y")V.PE_G K3E32\#
M)F1!KM<BI,7=.0**'A-#OAK4"-SPE#1')"0,"$ $,M0EI#S65G!B _?/WC*Y
M*]0@ X8+:O3:WRE)G9W[._6HF4UR(ZDB" 6M#ANMC#7$8DY12LXBCHE'.BJ&
M L4X6N(-86P;B9RYZ/RRD)QMX9/8QC[^(I0'(93%ISD"BAX30[X:E!#2>"9R
M)$PGC\!7"<A$JQ&CTE$3-.58;B-S\U(H,<#2%)SHLQ=3LC8[\V(^G(TG4P3:
MZAQDZ&+<U)L,KBNB4!"J3P@5?%21>(>2%.#'>/!HC+<262; I_$DF2WD:EK)
M^0B"\^-<;K;5+E,7+^;5B&3Q8HZ HL?$D*\&(QC1W,6@4'3<(2X#1M9+C805
MC 4?Y!V#3I^<F7DIC!":%(SHLP=3\C [\V#:AIG5Q:TFD+V0AJUV'#@,>=DM
M0V](X-<#<C02FG1$(GF,N(H.&0/014FRDE@LN7';2.BT,CB/U_W42>"69P@P
MW$_ VW)7BR+D_46MXW&<"BX57-HK+FD<#0\DH""$1IR+@$S &&'OJ7:6I;!>
M:+!)"NG%<8ES77"I-T)>TDT%]K8[WJ4G+O+A;6[=F-:O!@.CTY&TL[^5 @S4
MS"-K(D=*4G"ZI#=6;K/8;@Y_JQ-&M@R& TUZ6A^^T3"=PP?$@E@%L0IB%<3:
M#F(E3ZPCBB "WA?BB45D '*0#]X[8:5U,FZQ\&\WB-773-HK1:R]38"C7 BF
M@*^%R:-W@2^0550@S[0(U&O#UD/EFTR ^^#/8I@-XV]IB:M_'8_FH\K*I+>O
MIOH6P]R&XRQ^<7+^W7V#W>Z=I3:G0RN5[>2TK0U7FU^YD\?VO#)NK8Q;Z^\\
MDR6S_=G3">Z%GD/NKOJH3L!'0,6^CE0[ M+N;P9YH5P1[7Z/2#L"\K[>86AE
M\?:N89Y<:7"4.FBS 6@O1?C[HC/'R^)%.13ET&?EL,&XLZ(<#K@@Y\5SFWU(
ML?5B*,D+;R#J YU?-)6Y"TY]-0E*QH4BS$5D%,T)2I.0B5XBDJ1P45BIS5IG
MDF</(ME:2U[%MS&!Y"@%<B?6ZC$BQOYL_^-CPH(*AXD* 0,3:QD1\]@@SA4'
M78\EBB%)AQD-WJUU WGVI)%M[7L;$%%0H:?[!IZ]R?M(06>K,OU3XR?C+Y4?
MVOJ\\/T164.O!G^,I#@RI5%RC"'.8D Z88^\25$**[S ]MG=J#HQ^2%+R>_1
MQ_ISKE_:%@B);4RY*J+86U$LCLE!T_(XF/#5X$&(5)LD+8JQ[;*>/-*:6\24
MLUK+9!Q>JS1^<N>IE\2#[72?*J)8,B>'Z9*T9>C[9_CM97</0R1VR+.;D/;5
MX)?%S,#_*%)!@C\3C$%.!HZ,8MPGKA(U>FM-I;K],7^K&Q^'0SN*X]G29IEM
M=81G?<2S;=80% 'O(R@=B0]4<*C@T%YPR(2H8HC(>1[ )_("N10M<@(SG4BP
MW/.M-9':"0[1;323*CA4TD$%YEY:#A[5'Z(/ONZ!U2EL1N57@WG")8U3Y(@H
M[!'W42!C-$;$.<USMU] MRW[7EN'.3:@6^GFNU,!/U*H*UA4L*A@4<&B3;"(
M4.LT=00I&Q7BR6)DHO(H^A@TL]J)N)4YD"^+15KV/_CW.K#H[M9/_4&()_0W
MVI0<=[:YNN?;_!.HM=P%Z_]0/0KQ\BU]EX;Q$H5Z$EN&SBV&9N>C=Z%N+H;V
MZFW^ZQK7G0C@G_RL<R\7GQ@%W\R;0BV>NST7Q5%XUPXTRA>?Q*&=UI_C<BN<
M:_Z]?&F6G.O8Y8Y.>+4+$]Y4-VY[P0E96>S% IY=QQ?FCUV/AO4('FEJ)_,>
M4JM_ .IW7U_83[$+-2";@ IO[?"+O6KFS8>6.6-%6;4K?<,K*VNN<P.YGBQM
M*YY/6=B]RNZR//JA;9J\GG#ZHBM4_A<^Q\F;V^(J[B#XF[:]78N\^<1Z-+.K
M_?-]((8B&;A$G"2!G(<?A@1+,-;4BO@/\F;++?*(P(E0E5U.Q\#Y3!893&7&
M<@9XKU(T9KLM\DZ]'\]&T^:]O<IH<#H*\,UD%L-?:]MV3ZMC\S'_Y;ZV>=6<
M>#&<3A_["BWA2K>]/\])?3U2J[*C4(W;%GQS(ZP:WBS#?3WX^OENU5=;!&ZM
M(V#I_U?Z__6WA4_7,?9KCLJC&W4\U(#VD!L9/*I7Q]'0LJ^] (^&P'OM4%_H
M5X3]0+H#'@V17V^/P+*$_=$Y6YW[>,A::;-^@2](_DT&.AP\NQ=U4=3%H:B+
M#3H(%G5Q\!69SQ@T!><_4S\=SH:X]W'2C$>C.$1M_B*&RN;8L1UNT%!PXU%*
M6\&$8RF&>0;C/I&.KZ;<Q0:5-!4,Z1!S&RG+D<T;#Q1.6#&3N.!D&Z67\[3+
M3^<7P_%5C-_'483'V_+@,S'@9!LUF$<LK;NR=5^/D![:7,[^\VA!E$-&E& $
M)2X9Y$UN!!)=0)9+AH3B3EK+:31KQ?R;%%#N!%'T@&ZE4^$12^N^W:%G-P<I
M[M#C^H-<Q(F=PF'5,-HF+E?)#!:E,T4PBJEUV.A%-18X5_X3[B7B#@MDJ$K(
M8"%E#$XQI;:R%6TA37_-PK0H_+O:+GH96K"KB&CQA@J/%A[=\2XR+P4!Q$"2
M>H.X-!X9*P@X04IA3$,*26QE%]E.8 2; B-]=H%*1FA'&:').,5VII0=5BG&
MD@@J0'7@0&6(-8IICZ03%G$?:&XWI9'DE.?)4B18NL7\S[($_0P"M%V@(K(
M51'1XN\4'BT\NEL8P902G"1!WEF'>% <6:$2DI%RX0CW/&YE&M5N8(1M8S)(
M$=&2\CEP?^<#"$_SIUD3JZF]K"ZZ[>I%$@I8'398<>:U2UR"UV( K*Q4R')!
M4=0F"!I-E&$K/D\K/J>C\-.EKYOXT5[.&SYL%ZTH9P6MBHP6IZ?P:.'1G>*(
MTYAY&2TRFD7$G05K-)& @C(2X\2\36$;3L]N<(3P;;0,+#):LCP'[O5L. CK
M!3A_JUL5#T,V=HM?&Q+XU2"<-LXZ(BF &V6YC$$!4 F+''62:2UPX&MAO8T;
MLR]UO]LNLO&^UB]L>2]LD?"#LE"/QXLJ.%5P:J\XE1Q7. B/I#<6<0KNF!7$
M(BI8"D0ZI3W;6M/V%\,II7J:=WJ5.%5R4[WVTJH>2L:CAFGTA/R'MZUV8UJ_
M&A@4UKN0/$,TT+SU%OPO(_/66\^4](*:)/ 6B_F6@/!T%&YCX[9 <4!$3Q-<
M&XTS.7Q@+ [<D3MP!<8*C.VU)Y'P1,A$D$E) B0)E[??YNF0\!^OC4IF#<:>
M44RX$Q@C>$")+#C6(QR[>S+7_=.JEB?6++Y_8)K-HX>RW'?MUS0C;*L3?;27
M/CI&4<PA(4ZR<2NL09AR$A.33*JU^JY-)OK\WK4%?&\GTZN/$SMJ.J%N?JP;
M/QPWL\F] WQ>=G&?.8-GK9OHMI?_U_$T5NJDFM.O:@E8+5-PF36N*=6^89XM
M-9J^Y2>"L6]N/]X2\>23IAAMDWS;IM:/LPD<4P$LP?\G,;8#BYKZLCJ'0\Z:
M*@)%0K48/U'E)M"#]N@?QN?P^%?5)/KQIQ$\5:CLQ<5D? F(-(W#J^L(2A_>
M\@]W/<P3[K2+9"@!-SH)@4)BH-!3E* L@D8X6IQ<4L'8M2 SI\)0Q0@*06C$
M XG(*D7!0+%!1] X0=MUM?(YCF9W61XW]@;^JM<,9+C7VNC#@K=L? "K'KU,
MT@B,D@9SDB?ID+4\(HZ#(4D3' B_O>HT:NL3-T@XG!"'2R 3P(#5TD5!@\$Q
MQV&VO^I$]W[9!Z".FHL\P/,SJ*!!GQZMJD?P<-TJ5&DR/J\^Y,#^Q[-Z]*^L
M@?]J75.!_OPG/'U3?:FG9Y4_LY.Z&[ VGGRRH&1;"ZX!_6NGU9G]'+/VC?"N
M 0SJT?R/[;7A2:IQ6E;4__D?FA+UKFG7.$ZJ;M#I>-*-J/O:20U 5YW WA]-
M@9!@<IP!?L=)<U(]'4!XGY;ED6!V *K$1NU") )YYC'8F)0BRQ1'&'MK*+6:
M\;5)D\IAK6F,*#EP);@!N]19YT"I4(NIDH!%[B54"2\(LK668IZ'I,%N\%(#
M;@ T@"/H,(J6I^!X %?%K2U[8E@%#Y"1P'OA- ?DN8B(4<($$2IH3%YBV37N
M_;+?0I!UK=W,_-E#JOND3V^SFL:\,_:P5=_84$L(80%QSTF.DU%D;,RQM825
MU*"@U%K-^F:^<0.>KI^VV',Z"G-?[S0O6QM7VY*3_,1QM7JKTVIWXRGK["DO
M4?/YSO%3(@O;I=BV"?3+J+4.&K *  S^/;.3*5A.8")E*^:VY;"@(=@.=;;@
MQI-_@3+TG4$4AS7<I(U']!]20( E"=PA%E7,75LP  5VR- @O3!!$[G6I=)X
M+:F/%B6C0?R9ELAY\&N,,C[FOI8@QH^4XA_&S134BHN3W]+[^9#OYJ=K KX'
M?3/./_WMVJ@+(/YU !W1962B7T&F^W/ ?>##;S+/9:::CJ=V6)U%&]H9W_ 9
MS.Q)K&)*"\BJ[!"T'1"J/0'8<CP#2G56/AP.[#D#GAQWG=W:5E,>Z V&_&D(
M=?=-QKUEW@:F7S"OK=RL'N9(_;Q/;[03N"?0%O[4WC>S4>N??+%--1K#EZ-/
M(#2 H[,FGA3M<K.J*^R_F!A>+:;!P%KE-;A1(^W*M>0-MUVNPW"U*GN>F;9[
MMP.PK V7U%C)$+,N@6&B- *[6".38J2@[:0@ZX'^*&SB42!!;%:#7H,:3 94
MI_1.<6E =!]4@S^ S__I@;R@7,D+BJ^H-7S2;\56P?E#>*A!)F-3-VT#<-!U
MWC9GG42 3@*MWD8MGHN<M\0> :RC^A*=U0$TSUMPH#USGDD/GE0 V#.$(1/R
MRF,73)#!"Y?ZHCL:\$DF=C2W+L8YJUS%^:P"L%<N;*?=KV=+M3K^6OFN_-.'
MU[EE@RZ487-;&W:8L\"C+*I?(L#? 2@3;#53'EPAQ0EX.8Z#?92H121[[]Q$
M3?":FYZ<3(F":V_ %0*&]";_1A"QX$AYHF)P=*?*Y/XMO'U@HF5E<GXQJ9NY
M,NE,E!=6'D(J&2/CB$8":Z4#0U8DCR0C3/- L9"N+\IC67YRG]%6A[0VQ# [
M,DN#%GJH*#Z>Q=9*NE-=M-H@!W$GV1("FW.N&;N_#ZI1G+8AG:Q+9B,[ W1I
ME6.V/9ONMW;G0:MSFBG\<P[WS4QT;3#W.,#SV@WJTR:OU(K]VR[Y+6Y9&BW2
M.52'&.T/(H&'[@D"(U7"CQB0X?D')EARAP$ZUB;KN<"(!G<>X:@5XIP'I+6-
M8-!Z!__1'I/T()[ ASCY_-7.$$^%E?O'2/2!JQ:PTFK)5L'4(S^<S16,[:K\
M;E30C3TVGUJSPF_CT;)G_<?FZUK(V6%KYS5G,4Z+_[RT,( $L!@YS-!_<55$
M&Q>#14*0[%%0\"6-5X@IDQAF00BW5G3Z[,#XO>;?C73^\NO/*^*9[9HLHGD_
M61-';_X\&O=;.%=5N^T2 %?+(9(^/>[#A55]>M*3'6>.B/%>"0(&<W(D5V43
M9#&6*'%I@\$2N_5>$)L(R(>EXH6?_CT#7LE9D"VEB_C19XO,2=52$/SUB]G$
MGV5W_/UD_&EBSY_#O2_^\,5.OKOF\W 4TNUTVX+]0B7% $L&!I+-@<)YIL2/
MS^&]NEJERD[!+*ML#IE]BM4%:)VVT.D S'R>?# 6=%J,UB+N(D.6<8J25$9A
M[:B*:Y-^8DI)$Z:0)6!A<"_@-^PHPM1(11533JR%C3Y.H@7U=]4*]ZD'Q3B)
MX;0C6,['O8^3#YF^MVV)\7!H%W^96__X*7DWPD],S\U_</P[WIIGN;H<7&8?
M<H*OG8,92,^DY;R.Y6X8-%>&9/VX4BK7IS<\W&*]&QW0?TG6EM+D+$8J,3!6
MHM3("@U6#C-<,B.BQFL>0#"<A"0] GD&KT%KBJR,(,X@TU0*4 %)WVG@W*!S
MZ)BN2YJW@KKJ#S3SK^YW">[J8,\'1/2[CNLXX2 FJED>?!U=SB($;9 #RQG%
MH+3RQ&$?[3:8:(]PH._?QM@+OKH?#OK//E8)3R1X5<:W7?=(1"[:@$A4A'AL
MY!T='+:M@_['#F=K?+-AZ)">]%P)/<$Z>)2_?;?OS)VSA >!:-[6S#F.R'"#
MD=7"\$0MQ<)OPW?^R;;OW"RD_SY?N9KO-P65,7WL\[5[5;?N8A_>QD6"3^#D
M:?7+"" K5M_^==PTW[5*IR7YL3O9Q[.Q\B-8JCD//9MVB59 "&<;D-F<D*KG
MJSN\7MT.4NHF'P3V[#Q/T"U9#&AAK(S:NLA\L1O[9L6V&<^FS=2.V@J]>1 T
M6G^6[P'*MTV?WGZL4 ]G.=.PY0=;?Y!\8O<<U<5PU@RJ+V>QO5P]F5<PYONT
MCU-_CCE1ZR=M A8 =G[5U3*A^9?-S.72^UPD,B?"19NI'731X=IWV=S\EPP[
M\/U-J4S[[8TR'@+C7']J>Q%T&9TO=C*QH\.K[F]__K^J6@[6_E\KC9=OZ;LT
MC)>HVP@&]'H+[S$['[T+=0-TN'J;_[K6T.%$U*/V@>9]ZO")4?#-7/@6#]>>
MB\";?'<Q+^!]VU;RP+*^<^/+3(G\=M>M(2Y?NM7#O*7)_(BNB<7BT[SE1%\4
M!Z$KR[I8P+/K#H'SQZY'PWH$CS2UD^E;.YN.WZW^ :C??7T!\MDU"T0V 17>
MVN$7>]6\>_.GVYRQV@HDK_0-KZRLN<[=.7JRM&VSB:<L[#X[4:S(HQ_:ILGK
M":?/3VK_A<]Q\N:VN(H["/[FP1XAC[:[MIK)2<Y(K Q#*B4'EJ4#RU)IB0(&
MWU4KX61V&+:0R?%G,<R&\;=TVR[]/N/LZ2C\V ';Q[R#]A%YG2<9*D_<&=0>
MWF]C)8'S/O[2XG2[Y;B9G<,[P(V:%KCOM&4R-#[&?/BVK;D:SQHX(</OI8^Y
MR6O[MWR-FR.#G=KOWBZ)S'4+G?E3K>C 5MY;)3?7-YE8^6U!0^3#$> 8&"+=
M(=V+$XQ/\#>+XWV.6%PT\>V\9C:NZH[VO#=W]FG]7#=U6]9Q]79QD?L:L'8W
M9N:$?[.L(A<BW^K(/SUT*MGT/')BZ*[O>2++:Y;7[/-K?JWWLGYZZ^4[5?7C
M^S%_K;O:>1W",&[2P'+1BNL."TQOU[;>??M*6)C\YS9J^!*T?7Y?_+U1?^.8
MT"/-A;SK[&]=SO"GE9SAIBT'7V25'NXNV(=UVFN3UYU+QLM2^&E=!XL6.G0M
M]*&^+#JH]SJH&%L'OX2K:HX6-;=3-;=<B%DT6E_$86?JY;AMIJ),=JY,>%$F
M19D495*42;%,BC(IRJ0HD]XHDV*9]$F9;#BAU /-DC^(R,W>QXMM6X;:0AP[
MA3OL5\GU>,#8,0%PH>@1:(0CL&D*<Q:*'B1%B[@7YNPM<Q:*%G$OXOYJF/,U
M4'3#D,*#Q2"/CQXL[^\0<*.-)F\_0^6L[%%J:YR7GP@_L-ED+R&(QT4<XK3*
MFSUV.&FZ_TK_,&;('Z1^VBKS?ON<S;S/:,,AK4A,"(,$5QAQYO)\G6"1XR89
M*SRW3-[>(2>$DB0YA["W'G&I#++2>42)HXZ1H*EFMW?(@7!V;01R$X''3YK/
MLQ[AMZ]-S!D0>G_WC:('GJ$'ONNS'CA.([IP9D&H@E W"*4Q-98II!63B OC
MD U8(*X<]UYB8=W:',=-)L"]*$(I<7]GR:(%"CX5?.HM10L^%7QZ<)Q"D($G
M3Y#E)"(>.4=:IHB\-RRDY&R\8S3?!CU&7A2?^$!B7A"J(%1!J,.C:$&H@E /
M(11UA@1J-?*$)L0I\4C3//"'>0*>%;=*KS7N)\H(RKQ'4H#KQ1F.R#IPJ()@
M(O)@/59VQS$^*>^?^5CTP(L@5*F[/;BZVQ_C:-Q.U"R5MR597RAZ(#JAU.84
MYBP4+>)>Q+TP9Z%H$?<B[J^3.5\#14OE[;%5WO[O[0DLZW-7!NM=VDOL;FD]
M]I$ *:'[9P;6$W&4ZL"1,(DBCE- .D2!C \Q)DXIEVX;Q;,+^9I//?RUG6_T
M6YK/E.@F:?YV(VM?&:J)OQ)IOV?ZK_481\60HU(ASBF\)N8,D>"<5T'Q9-;&
M/6[Q7==>LAVL\<PW)72@X/_$W)58*)F&UZ&MCM,?* QYL SY:N!34>-EBA()
M+@ ^B6;(QJB1X<P81D$MR[41L)M4]NX24NY^TR"%(S(DI&*,B&O,X25I1$)@
MHRGQFO/T@F_Z0H9"AD]#!^;.VN8"GZ]#6Q7X/ **'A-#OAKX=.!XV02.9\"
M+-P[C"S<#"4%;IHUCF&]MG5SD\+C_<,G)BQYK3WR08$?251VL15&)$IKB%:8
M._.";_IR\"DU'L"C%?@LVNJ( _Z%1PN/'@2B>DUI,)8"4@B&N$L$:1P!=A)U
MU%D:E%K#F4T*I?>/J-89;Y+E*#&/$0]&PE,;AIAE@D;MDPIKFY:V^*8OZ)!J
M,C#DKF80!5%WH*U>HF"\Y';[T%7I9BYV2>66[5C'8 /L:SM6<)X)+QRXKS$@
MKA)#QD:!M,$N2<]B\'$;F=2?;/N(S?LX:8%V#KJW-V;E@?'= ==;M/ RZ-+'
M[M"ZQW=WC"M+(G(V.<2Q!9O*BXBBT\PKP9GV^B7>=MUVVN:[XA-ZUW;I8F.4
M_=,E^GUH%"V 70#[(<#FAK.@)#C+.=K.@Z3(:L,1"YSK*(63@F\C>[M;"+NG
MI,U03[R'1_84H%<#ZNJD)+PK^&B<.^OP5G+RNS9.0"I*F+T =@'L8Z!H >P"
MV \!-DO.*/"C$2.1 9)QFTNR-3(!8%M0AZUBV\@7]P&PE: $DP .M9 YDB\3
M@O<SB#C)-$E2D;CF7V_C75\>L%D![ +8!;"/@:(%L M@/]BAC!'M%9%(4P8>
M=B0$6<$3(EC+P)*,4:W51V^2CNX#8&O"N;0)O&6I\G-S@9RV"BD522#6!#!7
M7N)=7QZPJ2F W:>&;?#!NF&\7H1V)&_MX7.H/__YO^#'/>_[T"M>L_7\:M<%
M)1CKQ!)*S( 9:B5%VF*-)&-!.T&Y7B^=V<0,_>#/8I@-XV_I=#2MV_1S_3E^
MB'XVJ:=U;'ZZ],-9B.'GR?C\A_'YQ6QJ,]_]EFZ+PT=XCN^'8_^O-U4$OK^
M>TPGL[C,!<O)>WXB&/OF@0P^H5\AW"IOM(<OL<<_9\VT3E>;:O?'K=WC.>SC
MV7.08-M/$T'S#(?C+W!@=3'.7]9V.+RJ%LM_QW[SRDZKZ5FLXBA4X]3^>@'L
M.@Y-!<_:9+P.U9<X@2/F'%/5H_8P4"!^-FRY)I\YKW"H1FMU$)5MNEND%/VT
M^C*>#4-U9N%Q7(RCRL)3HL43ONT3.:LE]7&M*UI5<5<ABYU-QXO9]/GI\N5!
ML^7#T=!> <V[0[H[&7."OUD<[C.X7#3Q;1,O[,1.XT((.L7;GO;FSG*ASW53
MNWI83Z_>+BYR7QU0=U]!3[#.-[[,Y,K/.']?$+C+=V_^]-"Y9,/SS G9]2UW
M?5YYQ3X]ZN:OR%[V%;]6]J>?WM&E7VUB[S#D[C 6]99LQ1MW<L=AB>LN4O)E
MNDC-<6'QS8FXF%;->%B':H&"O:7^RW;M_7@VB;'Z&WP^:ZJ?1MD<^<ML%"N&
M![OO3/7 *G4BBUE_U^F8NH&]+/WVW:FNZ)C=ZI@/]671,+W7,,64.O@EW$E#
MSJ+F[ED<BJDH&JUOXE#42U$OQZ)>>%$O?1.'XI(597*8RJ38*D>D3+K7*+;*
M2ZB7^VE;U,L>;)6-EN.UJY?]ML<XTG+=K=8G_G:1"S^::CJN+F83?V:;"/KK
M_'R<;S?V_RKU:Z7)U:%4\]ZSPU-[;2WGR''*$5?*(?@<$4V21,DTXW9M&C#&
M2FLM%,)<YJVATB!KA42>:$)-]-&'M?K39];GG9Z#!IQ^I2'4+[_^_+664 .E
MZ( Q72I17XLDEQTC1T#18V+(5P,MDB=NG;=(8?C!+5?(88\1E3Z9W.S'VK"V
MM4'0& EW "TT(AZ]04YCAA*G23A!J9:^M]!BY,#@,I6^2/).);F@3>'1OO/H
M#M"&".^<%1P9;P7B*6\D<I$C[!0.&B=-^5H/6\TQYX8RI!P'1P9CCPS'#M'@
M(F5&*9\W&O84;8HC<^"2_,3T0'%D"D,6:-D'M.@4;-*1(J+R;E;E$M(V[[PV
MT0K%X/]^K8$,MS*FY"D*CFMP9 )&SA.#O#4D!2^Y%\61*9*\>19H2P.PCS0$
MMU6M\'MLII/:YWV_;=:GE;"FBI=QXNNFW2F;NY_'RXO8'C0=5Y_AE"(N!?@.
M&_@L2UP)I9 D %T =P8Y$S@BEJ2<( K$K[4Z)<0;09-'B1( /A$(TM$[1+C@
MGE.3B.QI<H@.1)Y?J0OPO1I)+C[5$5#TF!CRU4"+%^ (&<*0C\0C[J)')H:
MHJ>)>$IBU.XVM% B/*"+12KD,55"$V1U3A,%J7R@5*3H^@DM9(!%]JGNFA)1
M)/DH);E RQ%0])@8\M5 BZ68I,@#2H82\%J(0B;%A(*),DDI%;9K$Y4\YY'+
MZ%"2.B%.%<"1" E1&@-.\%^<LT=]A);BM1R^))=,4&'(7C%D@9;[!N4FA<'5
M0%SC@'A,&-GD(Z+1L\2XQ9*OE;19K7,EM4,AJ7R.PP!'<&*T6ND0G#*6]Q-:
MBM=R$)F@LA]H9YF@GYHIB$;; +:=79U;PLZ[S=9-,VM30; R\ >P057UTX?W
M[WLA*AONB3QD8=HMMS]_T^FQ "?% R)HW[G^X:VGA>\/3<L?CW]25'51U;M2
MU6) -F\)4%3U8?%]7\A75'5AV:*JBU7]ZOF^1/U[P;1%51=57:SJX^'[_>ZG
M6)X2!^3>N1$_IWIWY1-#OUEY(OS R+K^1MT_CJ=VV$.!HB<T2U08SW+<OP#)
M"P#)$TA\A%!R3U\5+(DCTB$>"/S C")M!$8I$N,B==*+M5T90BA)DG,(>^L1
ME\H@*YU'E#CJ& F::M;/)#0?,"T&7/6TONE!=CU>D"VAJV/RAPJ0%2#; Y"I
M8&+T42,G,  9#02Y2!121C)J9106^]M 9KR6U$>+DM$!<:8E<A[ SRCCHU-,
MI=ROLH] 1@=:Z8&Y<RQZWS5" ;+7$MB;7_^//\#);E+_<=#848.:.*E30;I7
MS=4%Z39'NI"B-UAIY"7!B'L+F$?!_8K&*&$,Y]::VT@7.>4BY#9FE'/$A13(
M,*Z1B!B^Q1* SO03Z8K+5G1"7\A77+;"M 7(M@9D7&GC(L> 0B8"*+F(C/,&
M,4F5=]:11-?V5A)E!&7>(RERTS2&8^[,:5$03$0>K,>JMQUABLO6/YVPDN"#
M#WG7Q9\7*_3K[!Q\%0^?0_VY^S9?N![-['SAVN_[ T,W]W[H=L\A7OO"*]19
MQ%^2M6"9TMPRER >K4=:,XQ2B-;2D#A8FMNP2G^L&S\<-[-)_"UEL8VCIEV,
MW^,P[Z7Y8=Q,FU9LO[=-#._MU3F\2O,1;OK]<.S_]::*C;<7<,'I9#;7+K">
M,9Q.'_L6_R"/8WCYE65X8-7_.6NF=;K:5">OC?3:-E_\.I[&BI"3ZJ=_S^KI
M5?7+*",5J-?J_1!<_ 7#]/+9JV5V[O4R/N'-VRN_K:=P7_\$6GQH.Q".N\%4
MM\3\'LH\]"AO[E8-3&(5D[#(V)QCU,0BA[E'6'"BB4\VD;7V/)NHA@_^+(;9
M$!3#C0)85A'MV\ZG<)T"]'X&UOV8%?Y]VF&)/Y8+'_B)8.R;!ZH?GL8RA,+A
M>^&:1_'(:=7,SN&)K_+^Q(Y5*MM1#ZRH^0[%Z5FL*,:BZC@J:X%!99L*U@?^
M'JIZ5/W% FS"52@FN&UQ^>OX<VSW/<(WM/HV7^(__T-3BM^U5\K7:#^3=]^U
MQW>[(.]2.+=.AL-63@Y@\8T^M<_X',VT;<(V]65U#I_.FJHCTE]FHU@Q/*CR
M[-:J;C(!TW@X'']IWBX)Y[6UTAHK=]7JV-ETO##H\IOD1P'%E ]'0WLUGLT/
MZ9Z*8+#COED<#]08VHLFOFWBA9T I"ZXM3/YVO/>W%D2];EN:E</87G>+BYR
M7ZU3=V/&3QA5^<Z7F;CY*>?4 =&X?/?F3P^=3$XPW?343<\C)T3N_*8G7._X
MEN:$[)ZVK^4UU:YO^4I6DX 2HR_[GE\K!M5/KP6]$VT>7R"ZY>3A\4_)+?0L
M0[AW2?V7'<+]:]LWY+_<Y$]_!MM\[MFT'W^;39LI&,UPB3*ENV_RLC/]\[+T
MVU.&K&B;/6F;_VW/B@&U&N84"&H_Q?;WG[KA%=V']Y/:QZ)TBM(I2J<HG1=4
M.O\]L:-I]:.=QNIG6T^J_['#6:PNXF1N"!455%1044%%!3U;!9U^^C2)G[*>
M^64TG=2CIO9S9;.P>T+U;3VJIF?C60,^5_-=43VO5O6\$GH69=0[>^CW>&[K
M?('J!S@ZUY;-[+""!SQOM=-5M).BF7HE2:5%<]^;12R%42L+SD;T7<4"(VV2
M?BN-68Z(]L=3']\7BAYH[?OKKFMW7"2/!4'&4XVX4AH9 C]L,B'0A%5:WZ"E
M"1?**X.DR/5N5B?DG*-P(L?),N*%#VOU;G=6N9U.)G;T*>:RU^^OUBIA3[_8
M29AGBI:T6Y=)VL:X;Y4W;.E^UK@7J3X*\A68>5FCZ?&D_$.?.?/5X V1U@>M
M,&(B.<";:)#FV")F>72>6"M"W_!FX<;.'=A%(*W-':Z@T-\__)AK2;N=6&^J
M!K@!G@@OPQ+]VL8K>2)I :37 DC]$/O>Q. *R0MG%S(7,A<%T@>2%S(7,A\/
MF8L"*9Q]=&0N+=_K(VOYWE8*QK"I8)4EZ9=R*U&7@@S["[9B;U4,/"&#J47<
MT(AL_LTPHVTB5 :RUK1JHV86SPRVMDJO^67T/D[J<?COR;AIGIW>,V) E2BA
MU-<BU"6W=P04+;F]0X8;P 8O Q5(4*)RLU\,<(,Y4E(ZH303-+"=P$WS)+S9
M97Z/"#"*"RB]%E#JA^@7G"HX=3#,N@.<TI)%'K1#)&&!N O@$9GDD*;.2268
M)X[VSRVZ!5/M'_..TKRAM-WBM6VL,B>BI_U_^Z(&"E0=(%251%!/K8-"YD+F
M0R!S42"%LX^.S/O=WUG2EMOW?:X;/I1<<HGR%[?IJ+%AJXKCV^<TGG]&6(92
MXQ4+%A&<I^*&E)"-":- G;5:.*.)V$I8)K?]_Z5I9C'\V';;[^(K;:2D69Z[
M<*U!MS 8D&!>8BDO$5+=N$U(24H7N"K!_B/"K?MFK6NJ*4Y($Q(1=\(BS9E'
MU#D3B+>$J;59ZWM)2B_09B]Y:7["2Q^$8K0>44"CA.I*J*Z0N9"YF+K%U.T#
ML^[ U(U>*RT-19SG7EZ><*15<&# >J>=LE3*W=1?/M72_3B>VN%UP^([BUFN
MS5JV;-8B]C6[5A:KMEBU1P9*Q:KMJ1U0R%RV,A]TKG.K1LH/=N3CL.2?2T#_
M>8WRBUGTP@3N![P<10Y;49IHL 19Q17BVE)DO=7(2B6-XXQ@AOO@@OT\GJ18
M3V>3&R?L^3NNV8!2TD]_:^/)#@<4A"F9\&,%SKY0M(0'#P/][JFO8BIB+PQ*
M/.&\[<TAX[1$FJL@F%#<T'YDPN\ IYWV8&8GNH0-C]$^[K'\E[#A,9*\D+F0
M^7C(7!1(X>Q"YD+FHD .A^2%S#U-7);)J/N:C/J7V2A6#+=3446?I:?$3+<6
M\:<G-(?\PWCFAK&D&U\BW?@$$O<#%G80<C5,6R>X0B0JC'@.OFKC*;(B"4U4
M\$ZKVR%7P5TP6&NDO>&(F^"0E3XA;;TEBF$>I#^,Z:ITP%A/=Q4]R+J]RP@>
MJ'[H"_F.!]3Z0M&2"#QD5&*:>ZN91H D#O'D+-+!*T253ARS*$Q<*U+9,RKM
M> 8K+<T:7@T@]4/L2_3M&$E>R%S(?#QD+@JD<'8A<R%S42"'0_)"YI[F_[:T
M<7&C583S^^Q=OD0;7)LCNWM-_O6<Z+W1127SUW]E7S)_7XNQ$FFQEM0AGW<#
M<DXLTDIJY+!/-))H)+9]B+$NJ<>M9?ZH% -)53]#J"7SMS7]T+U$ ;7ML6W_
M*7H8F;\GTO'UH))GC"=KD8T*4(FYB/)85F0#X5QZKP+M&RKM-/.G3O1>1][U
M7_Z/"9#Z(?:''7<K)"^<7<A\[&0N"J1P=B%S(7-1((=#\D+FGF;^]KGSK^=)
MJ*V&0/XG-M,8*CL*5;R\B#Y_F(ZKS_!UV09X7''3D@PLR< >AUT34R[RH!%7
M6.;!# 39Q"C"6ENFF."!]F+#1:<Q3T?AI[F^_#C.7Y7=@25'6+"N_UC7%XH>
M1H[P($L9=]'".@+$,*M14!+ *F**3(@&$<9DE(Y0A=-A@%79--@KM7!,.-4/
M;7#8@;M"\L+9A<R%S$<%<L7V/63;5],0M",8.>X-XH08L&.E1UY8*PW&ELL#
ML7U//WV:Q$]V&E]DK*81/9WSTA<U4*"J0%7AT=?"HPLT^75V'B>U7\Q;$8%)
M^!_R%'O$+0-@2(HB2H5,RE(;UMLL;3QOQ7T=3-RV BF_QW-;9Z[Y 9X]J_^9
M'7Z,DW.R@AJHB?YMF$VNHIV\))++DPQ&<]9<68<"22\B[BME#_ A5^G?0?I0
M?UYZR>71F?Q$,/;-N_O?FU#XO.&K_W/63.MTM:GQ>/,\#]W_\;3\.[SRI(+G
M^,__T)3B=Q'X!BRS.&H_DW?5Q63\N6Y #@?5]"Q6HS;!5HU3U>75\F]^?'X^
MSF\R]O^JX+LX^1Q#%K6J;II9GK(*5EV^3;X Q415[X=PQR_U<%C9&5#(MIPZ
MO*KJD9]$4 ,57.ZN"8E/(,&;NY6>(YX'S2-B#E0=QQ%L:15!_041.7<I$4IO
M*SW/C0DF*,2C@Q].:01JSB*#N;:<:(<Y6RB]!E:WTWC-;^F'EC ?,EU^GY/E
MY_'DESE13A>O?CH:S?)\^>[=?P$#N&Y5Y&+NX;*I&\!D1G#1Z5F^'PKV"L51
M3WCI+Q;>8W)5?4W=]>%9,]]&Z\^JK/X'E8L@K_FLE^,\Z2QWX*<A%5)"G&I@
M(.,=2CK)Y*,S.,7]<MZ'J9U,?P0&^RK+9:+UD.]RK131A\!];=%7U_$=&"Y_
M M4WG+5?O S[D21$"IRB9/)T/>82TH8$6$ZN-.74.!/VRWX_C<*A,U_>5-Y[
MY@-M=_5<)MM!K M;[)0+% 6% :FM![XCUB/!#?9*@-MAY6V&Y=$J(RQ'GEF#
MN/02:1(YBI@0Q[CPD:BMQ;H GK,O!P[';VG)&6FY_F_VLCZ?G:^$LRYF2\E;
M1)^2O17W1K/ZP%#?9##-MMUT/+7#.TW$_-=,7CNZRH8E4>^:5;-QO#0# [[\
M,?K87H61Q>GP#CZV?\\4' 4[:;&[ C/35L/8@)I9OW6(X&O#<X,]"DR?+_/]
M&);NY$[^WQ?]?KG;Y-C7XUCOQY/0FNU?ZNE92[5KMV#)'^C3,U<KWN"=KE[[
M$]S"_X)_%X_[?ZW+=_F6ODO#>(E"#3R6Q>LMO,?L?/0NU,W%T%Z]S7]=\YU/
M!#C*^8'FY?3XQ"CX9N[@+1ZN/1?@*KR[&#=U>_%)'(*.^1S?N?%EID1^N^N2
MOLN7]KWG\:?Y$5V\8/%I'@/HBW-*V,JR+A;P['HCP_RQZ]$01!PUV7Y]FSW*
M=ZM_ .IW7U^ LN[V-"";@ IO[?"+O6K>O?G3;<Y8C;KDE;[AE94UUSE<TI.E
M;<,J3UG8W2WE'3&;97GT0]LT>3WA]/E)[;_P.9?SWA)7<0?!X<U:,0?9SR?6
M8)4M%XTE:T.*%!F?VQV!YX>T9ABE$*VE(?&(PS](9T[ J3&<3A]]&GW<JAY1
MT"@C0I^T_S:#4K:YCD*%;(FLVO?B,&QGFB(+,C@4&-.("_AA(G-@.],0 G-.
M4G[;=M;>J2 51SCF>)A@%EDG,9)!.FT$952(%6?O)F"UY.[]8"]J, ([1W#)
M]_MYEN>E+SS 9Q?H2T8&ZH&"QCYPY9P9!Q7<TI^UG!7_#?YNWN35?Q;RVBF!
M14"&JH0X5L .1!K$8F26.2&"6 N4!CA"<>51U#P@3EA .LF ;,38!DP2$ZFX
M7WMPOQ[I:K4JCI\LH_31 %M[Y;=9-]7^"<0%%38%)R+OS>RHESFJ6:;0DM&X
M]$SDUC/]\0>XL9O4?QPT=M0@T(MUNC=2S EA.'A$K8U9C!32.&C$A+)>A>#Q
M>F_&C1*S_BR&V1#DY]?QZ'.;9;UYW5:._IY?]A18_G,]O?J8$VD?X9;?#^%/
M;ZH(LG214V>367RS:2I-/HEW6E;KKUUT6C6S\_-L+8#,3>[BG.K;>9[M]P]_
MGV?8OJML1^ :[GJ721)FDRRJ?3.ZFOJR:@.S38YDPUNN;%@&*ZL"P$OCX7#\
MI7G;IP=?CA5<IXG;+/$MM[)UH5J_<>["Y:?+EP<5E@]'0WL%RK0[I+L3P?@$
M?[,XWN==&Q=-?-O$"SNQT[CJCK7GO;ESAWX.L;AZ"%+W=G&1^[;>=S?F\D1H
M\\VRW[GPHUK'\T\/G4Q.!-_TU$W/$R<*LQW?E)Y@NNOW9"=8EO?<QDV_ULY"
M/[V/_9U*Y_$M+G;3+I'L97/I0W;+KBKS"GUWMT5J<UJO[D;')WDS>C,>UN'1
MW146E+MC=?1VH]X;&HI?.@WCQL/PA,7IFA'\EYO\Z<]@#X+%U^Q>$!Y8G(<;
M!?1A>?9:4UV43U$^!ZQ\%C71J-4_\\KH]O?_GMC1M,JE-M7/MIY4[<:;Z@+\
M3E!114,5#54T5-%0.]!0UUL E]70W%"JYLWQOJU'U?1L/(/5#\UW13GU2#D=
M8'?)_F^"V6IB[^_SH'XG47:ZGNKI\Y:YTFKK""BZ#^(=YQ[.'789\%B[)"1&
MFKJ(N $GPA %'P6QC$;+-&5KE=<D"BLQ09H9@7C '&FE'(H43G))8R/CUE+_
M/_U[5D^O?ADUT\DL?]G\-CV+DX]G=C3?,GJ=S]Q2/T@CY8"PTE/@U<AZ 9\C
MH&CI=7/0*"28%AHGY*2WB MED): 1RR)O%>-$:_7JF!ZBD*W^A.T ;@<?\M^
M[YUM;Y[;[9&8$URZ/1:T.FBT*JT=>VH@%#+O/&KV8!7+XZ-FRZ69 FZT:^6T
MLC?IQ-!O5IX(/U GVM\H6XOF,6PJ6&5)^J7<BH%3D&%_3@^UV.I$$O(!O!@>
MJ$*YY!\)9C".S#'IR6VGA^B@A6<6J:0=.$H&7*:@/6*8V6!MD%9OK\'G5YV>
M5ATVOUPW+WKV)!8MZ(#IGDYB*<)^%.0KZ%-B;P6&;F!(")N<(!(1)R3BB09D
M>$J(&$6DL9Y$:PX)AG8?@),G!!?(*I!UR)!5 G ]M1(*F0^U;*U$>[9OPG2E
MHB7^UG<X*?9- 8;^.#[?/J<EP3-<*^(T)\)YY!FVB--<7*>E0$Z EZ2X28GV
M/,+7Z=OM1?@4'VA3:NM>))RR\9:)XC45F"N!OB/"N[O1R"J6G$IY\@^).=#G
MD!9*(,ZPPB%:'>C:0+D^H]$^*NTT*]CU6@SA EE'0-$"68<,6=(J%5GNR6P=
M1YS#;T[G83J:J\2L$3**0X*LC[EKY[WXM.$ 5#I0^OZNI44+;!.62DEG#^*7
M6U4\/X\G*=8EJ%Q,EV<V\3ADM;9;F^;Y75*.Q>K95V Z.L&X4&!7!:(1]U(C
MS85%)"FCG>'$IK6&[_VRJZ[5]M9BTP(/)%?]M*,V;DUS0!Y7"5\?*Z#VA:(E
M%G 8J'@W9FGFE9(6HT!8GJFK%-+1!B2]T#(E;D+L>?AZCEDS@*9]%*EJTT]P
MZXMZ.%!KNB_D>U5%JL=)WT+3(RH_/=(E>]FNB2MS;8JP]%,!;=F=IB<T^]-A
M/,MC@4J,[P5B?$\@\:OQ9Y3B206&$2&&(,ZX0=K3/ ,N"4$I4Y*NY3:329(Q
MYA#F>6XGM1$920TB/G(+[HWFQAYNYT4Z$(8.C.YI?>B#+-V[,-R!ZHV^D.]X
MP*XO%"W1MT-&*\QI9%0GA+TR@%9>(8,#R7V"*8E"Q9#"@:#5/F)OIM2-%K0Z
M:+3J3^RM'SJW-P9"(?.6(G3P(4_Z_?-"4\\'=</G4'\NT]'?QTF+<B,?D<OH
M>_?4ZYOYSRLCY5]P4/B>R/@HHOUX,\_[*MK)?'KVVFR607M$MGCLZ*KZU'69
MK*;CZKP]KLFCDI:.R-/$B7K75/ PMC.+JFFTYSF,6=EL#375EWIZE@>]W5JS
M; +E)X)'#'5K%UV/*7__X>_-8DYYGV9X W%RV71^ZKL>ZPGWW(&=[$(R)F@"
M1BX7B-N0*]:E1\D(:8E((EE]VTXVQ%$?L4(A.8EXA,--;F?NI!>46Q,Q(0?;
MU$]P/J#T_I9^?>"PJGNQG "PG?15(<\J2WE6V>?%K+(_])_[@@A1&)F090&\
M-*LBLEI*E!R)2042/<.'Q'V[=]74B;J_F7XO>#4/[VSYM0,-/QPW635V"'P!
M> S,.FK_=,/))]7'L]C$*JOX%@*J>@1'1?BG =4Z;!%D?I;/5F,"N['EJWSV
MH(+7\V?YKL-A-?9^-JEL4S5C^#O\:P,\:PTK"F=\CL,K>(A,-Y^-*:#V<#C^
MLL! @+\L20!Y<E!U@ 37Z!-Y\U-F;F[27+#@<2?Q<QR!#K#P]*<A6QCPW#]]
M_\O''T^7$;;Z- 8>R_Q5I3HS7P?YW<L"G?KTFB&"00]_A!=Q5]>FQ4*0VS?]
M_V9PR>H'>Y$MQ?SG\WHZC7%ABGP_!G'.'WZL)]%/QVM&RLGJ)>-E_CT",8=V
M;MSD@UN.K)LJFR7G[1^B]:WA N)_PR+YT%5MG+^9@AT8ITO&9];@JYS?ODK^
MZGP,7'\Q&;N6+8>PI,-\&;A9#;]W M!==7E);\RD1[T.?+$PO[)@7,#]+MO7
M JDX /B(2KI$DT9&1(JX=PFL1LT093)(@ $)ULO:&!8&WU(6$06\0%PS@VQ0
M&B4B'+B5AF-I;L/'*>@$G\EV-X[\U-'VWNUQ<F5[G/B*2L<GM-\*/7/H 3"'
M=L !P0=$A-:("Z:0YDX@'$(2#GOLU]M5>\F32EPB[V3.<4J#3/(2.663I8EH
M@=F>F>/^P&POF /.'^8UR*B2E5.?'FYZ-HE9L8ZF9\W<LUVIGVDY>WGT:!\>
M>I##%A> 6*VM\AJTNDK!.T\MDBR @2\) _VN0'!C,HQJB9/SMP77L>B(<@8Y
MCQ/BG =DK3*(1BDI%IJ"8M^SX-Z_Y;D/;'8H6EVF1+"+!@4#JIT'R\%C# ZI
M8(BR)$D2UR _@"/)K%-@%S@+S!$\TLIQI"25U$9EM$Q[9HZ>^W!]UNI-??D8
MG7Y+CY:@[YU!WX>)V:=EWU8(NG7HX-C^JSX*AJQ+W")&=.[.V*(=U<BK""J1
M)UBNM=''F^#BP81J-6$#Q@\C5-NF-PX[6*M(VP:4(.T"!L^9".0D0"]61FKP
MD@RU:QO:^LQ_^ZBKX3UWWXXC6*M>4[!6M<':$B!]>H#TM'W#'ELX_<>$D-MR
M<B,1YAI\=4+!M:+6("R#],D3*T)<"[*Q&%04%#EJ(N*",V09>'3:>&L %2PQ
M88$)#7!1!PAH1=W?@,'<$SM-P/\?6_8YO>& 1_IG<D5QHR;ZK+SS_K4FCM[\
M>33NM])>2&*.]H#HYK+_L!X2:@43CL@2<8>09#5[/CM?B&!6-%FYM!<=C9<D
M#8YW,>O<\S@M;M32.OPRJGZ.;C*SDZM6EZQZ*/5H.AF'F8<EL7DMYO4MR[K)
MC4>SIKH8PJLLU;B 8LY?OX>O%]4N[>K$RWA^,:W@QW!\%2/HL[\#R2<+)3P_
M+5]M<',0N#]7F4<B@&DUN\C<T7\EPQ+#F$F%;#0JMZ7GR-)<-*"BID8+!U_?
M5C),1\]\L,@9#H:G +/5>4512H1R12('E7.PC@]A;$#E_=N.^B -1^3X>,8E
MHP8\'6$!L%C0 '(B($^#H"EHZ]Q:)JG/_+=[QT><D'XG-9_@[BP<EB=[.JWE
MNAT'1PQ6+>G;3L4R\(S=U-:CMH82'@E^7;6')T#B26T7UG"?%J7'EODR@9=<
M+UM=C"?+BS!7@HOPY.P.A,[ 7L%1*Q;6HNPUL\RU27< JI(E;F**#*7H*.).
M4J1)!/<@>1%MBI[']>&<(BKO.$7"69SS?089JP#HM692AV0\W7=%QH&D9PXD
MAZ>3("1I< "3]AD;(P+'SR'IC?,\& JVWFTFD=HFKED"/ T"'$WX36N/$8&S
M;02/T22\9R;I>2!ZP23WQVT&O<SO=54;F;4?3DZ5!%])\.4$WS!: -GFK+XX
MM 2?3,$;B252WAN OR20=<(BXYWDAG'LD]N&7CP8/Y=S/:"TWY[#$?FY)!"N
MI*>(<G!VNXZ5V%!DC.3>2AZ]7?-S^\Q_^_!S1<^C,DL)OD/.\+W"[1@EPW>$
M&;X21[@;BI(ACF .CJ$4)A?O1V2(P,B[)#TC5"2Y5FO2+RC::)#2<6X&N-L7
MN]_QVE&KD6V_[AV]&V!Q\M_KT<S.5Z=MS=#^_']5]5_P[^(Y_Z_U2R_?TG=I
M&"]1:%4TG ,7&,[.1^]"W5P,[=7;_->UGA@GHAZUSS7OU(I/C()OYF[HXAG;
M<Q& Z+L+ /WVXJUJ!]A]Y\:7F2#Y):_[QEV^= >->9^.E8E BT_SWAY]<:$)
M7UG8Q0*>7??(G3]V/1J"!D=@%DVF;^UL.GZW^@>@?O?U!5BD7;M<9'/MPEL[
M_&*OFG=O_G2;,U;[J>25ON&5E377N0U*3Y:V%<6G+.Q>Y719'OW0-DU>3SA]
M?E+[+WS./2-OB:NX@^#P9JV8WY+^Z^TMUH:49P2".X4XV$X 4PRC%**U-"0>
M<?@'?=SR''4#%XJ)JGZ:5RY4'UJ+\?ULXL]L=D7 VMD1UFWX^-5>(Y#/:46]
M;8&[J4OIEO3#^_>#*L)CUME*7:U-N5@L\-SB!1MV#/ZB!U]F/)J[#=.SR7CV
M"3P.>S4!_Q!,IC#S76^8Z1FX$]Z.<L52O/01K-W^&[O1N^!-B(BZW%E783!<
MF>+(4^.)]XD)LE9$AVFT@:J(I-6Y!V^0R$:J$9,DTF2B5UQLS=C]F[W,M6$+
M6?PP<XV?U*V=^SLX;"OF+"S@3?0$T:>%3WIMSGZS<,86''L=<F[LT$[ >WXF
MJUWSQ[R3UYP]1+*86$D1BYCFL%Q.G"6)M*#$&XVICFNM+".G7 25D*6<@_\D
M!3*,:R0 7%3",EFQEE/=F#T^@MO:_);:WWNB<CXN*YOL$7^N0^R"*_:EEHE&
M;H1C*!CJ$><YC8UE1%@;DY1Q2:NU;:N44E!1DB$"BYF[E%*08@=2K+ 0P@85
MDEHIA;T6P:P(%V"8L?"WE&).\BPB[[?K6<-L<EW/VHL5:NI+U":BKF'R=A>[
M_D@^"'Y'W7F0ZZ0ZG2X')-L0U *XND/N!+@V.I-C/--Y..T.M%M!NGEL;#C^
M @!Z$#DLIC27N8$8H5'G[DQ@YV)ND6 XRI@K-?5:#N')4O!#2Z-6!G),Y6]V
M\J\X;2,KP/[9J03?:EN@],"HZCZPYC4HM:'6\Y82\XCKG'E<!!NQK?\:3Y89
M]A9/5\W,_3/Z:1OEM9?5L 8VM9U5-8_FMFWM5L.Y"P8^^8H4ERQ\ATE]8IT;
M?)R[MZ"@1M6\\#Q^CI-/DQ@7-><=AC9URPIV>@M21U6.:8 0 1J"\3T#-FDU
M6E6/_"1F!7=/GN;YL,O!(/+.@*Z1,2#N#$>&"X=,G@I+&>'!KHVE>++":>T>
M,'&6%,_OL8F3SS'\/)[\TC2SG'HX7=#@M"7!+_-W_P7T4-U*TAW@_#9G/#H@
MS/=#P5ZAWF#T7^RHW<U #@.CNSQ4SIH-<H(R<^7Y>#8"3_#?F2/GZ:MA;)H.
M3;\EWQT HLH@K.">(YV 8[FW%CFB&=+24NJME]RMI4)B"C8FD +A"#!X\'".
M< I8'7P%ZH+$>'MS)&\P][?TVVS:3.THQRM;*9E[CML"XWZ7@EQC<0>4HW;*
M3/[N'NMN?$.LK!^7NNPV-YG-O%FG/2+3:Q3L9,[@W])#8%ZND[<A@3F8$C O
M9AXY%@(R(F'K:++6K(4VGL*\K7;NU&KM6X6;V7)%4<_3X9T*7]+:/\_R9-.%
M[G[^GAR!!T#&7C/H-2-.JF_9=V#Q@;I<X]([2PW:TH&[ QQ[W&YG?<YHMUG_
MMORJ=<D6ALN-Q=*EV;\JCI,Y;[0F33WGBZ54^XV]E/=$+BR;MM;A&BCG36>
M:OV734F9,90;)(W@8#[)B*PG',4H).%8^\C7FN\Z, 8I<18%A@7(I@!Y%L&@
MI#1UFF'+%5^1S1LCJ(CD R+95EC=(8N?;3V<%T)-YB4R]S&D5&*@I,[RV^=]
M/"O% $M9SN=[ @8;SDRVZI,'=T E"_SL<P='SJBG5BFRG3BI/XMA-@1KYSH:
M!PQ<^WB/!=7M0H#??DN_1S_^-(*7#!UF_3!NILU'>)SOX9A_O:DB6$47V4.>
MS.:P6(]F,9Q.'_M^_R!O=N-HMYG''OO:K076ZO7Y1FM_5V6;;9JQK]L:MFL
MH1B+-KTXZ 2LJZMJNX@MQ*U>VF=?S\L>QYG,W8U&S7A8!]O-F8!_VOJ@-I-U
M$2?SD$J^8-N=<;%')<MM5^W85-^V%QW/&CBJ^>YMGV1Y.:MY/8BDG4-RJQ"B
M3?JWE0[SHH/\=/GR^%U[.!K:*S" NT.Z.Q&,3_ WB^-]KL:]:.+;)EY8(%M<
M+2!HSWMSY[CBC/JN'M;3J[>+B[R[9PYQ=V-F3O@WRW42B[Q_6RCQIX=.)9N>
M1TX,W?4]3V1YS?*:?7[-KXT@UW=.(.^&F=XS@?Q.W?CXL>1?FU+5X>$F4ZH6
M)1IWU/GH[1;8[7'ZFGQH^MKFM%V=;8M/\FC;%G4?/:QY;]1_+')_Z3C>C8?A
M24F&O%OR;^-VA]]/*SO\-AW>]B*K]/#\X3ZLTUX'YFU9Z[PL_?8]X;'HF-WJ
MF _U9=$PO=<PQ90Z^"5\PB#;HN:VKN:6=PL6C=87<2@V4U$FAZE,>%$F19D4
M95*42;%,BC(Y7L=G?H<__@"GNTG]QT%C1PUJXJ1.1?\<C?XIQDR?],_78CUM
M <#=,9U[PC?KD2$/!$[^W1U+>N>[?6V=X?QG6D\OVC9DJ_5WN<QGJ1-4\RC9
MV70%1N-'T7\K!NP.E^#QU/[#BY+WT0R^.:C?:)"7)'E[]Q=E^[O+3G'T(A!J
M$>9<Y?$O>3]#M"@*Y[11*>CU_0PX6 >G*<2PR^V@2$(&TX@T#=8&&6+4;LO=
M?]E**R;VE5)32>\O,RU2_I"4OX@-WC?AW@-==^?PO'H6+D!UE$!E)-?!N(1(
M(@% 1P1DE;)("JHYC3;BL-X.ET6NJ(N(6@Y 105&+B:)(L4DZ)B<462O0,6,
M*4!5@*I'="U 58"J -6S^H=Q'#B)%"6I.8".9L@&;9!20@8>B.5T;>A.T%ZG
MI##2GD3$)9/@486$*#;1.,>)#?L%*C*@\OZ)*D7.>P!5\UJQ E6[3'H4'B]8
M=L18QH-*E!B*&)'@0($/A@SG%AF7N^@YH4GD:UCFL1:,2A1:1\UYB[0T'BF/
MI90A\A3H7K%,L^)T[1G)'I4A>V(Y].,KGTN&[&M;"D"JNDW170L[.&'3!'.1
M@V=4JA0LV^:<2ZF4R:WI2 08XYA19 "-$.=>^60-CGQMGINR 5-PV)!61"(>
M>9YZ;AD2G&$LP44S4N\5RX2Z?QAJ$=4C$]5>^5@[IFEAR!XRY*O!#I(<%Y)X
MY E/@ /@$=G<5EDRIHRTVC)EUY)/EDAJ.$&*8Y-C>H W@F%D="+)\!C\GOT@
MH0MVO!I1+=AQ!!0])H9\-=@AI..<A=PBV#/  4 1+8Q!29,@A LQ"+W6V%%R
M$VD"1R-WA.3&YT:M\!M1RGGL% Y![CD?1.3]K?B+L!Z9L/8*/7:>W2D<>W@<
M^VK@)42!N10!,9^[<D>OP35A$=Z  $Y8;Q59"VL)HHFE4:!$&4"2MAY9S!E2
MBF+FDS-^O2']KN'E@4DO15AWGHLINY7VE8O)#;GMQ)^UZ9B0IZZ/+W(+VY*Q
M[%'M32E'V G6*1$Y-E@C*O.((:LP8%U,R'!PC*Q.X)/(M3"<PMI&ZI#V!O!1
M>X(TQAPQ\,8$9TYKN]_2.LXW#,,5X7X-PMTKUZLOQ"XL?$@L_&KP*03&N(@&
M$4H!GUC,\U@,8 VASD9LDD]K0V>M<%QZ+U",2B">E$;.1(:$H=QC';7S8;][
ME# K^%2$NT=T+?A46+C@TR;^DPI,:B:0H=XA3B1#.D6%@L'@/GDN"5Z;_^<T
MC\D8#$=Z#IC&(S+6$&2$QEXD'"7=;RI*,U7PJ<_"738FE8U)Q\[C!<!VTP0B
M*A\X.$N:2W"68DY<>2V18U%I910.?FV\.'=4.TL#2C(GNUQ( &78HN0DB8I@
M6#B^WVY%>,-45Q'NG>; RGZD?>7 _CN.XL0.VQ28#7!4W4SSZ,;/L1<IX0T[
MDQZRP.RVPN/YK5^/&Q9UXHJJF!#V.B+.K4".)H^,=)P8XS#FZW''"&#A)$;8
M"(!2#'BJ(V4H*2>]C$E3BO<*BW1 -XT\[E'@'^Y]6T3^T$R,XREB+RA54&JO
M*,6B(S1B@P*Q!G$?(G+!)B1(% '@B"6V%GTTT4H:X<BD#3AO%@=D#+AQB5M/
MDDA$\[3G2D4M-VPV6U#JX$6^+^0K*%58MJ#4=K9K<9YHC!191@&EN%;(&DV0
M%\E22S#3<:TANE<NIH!IKDO,+?^X Y0*!F%!X"P>[+Y#C&Q@5$_KZ0M*%90Z
MOBU=!<8*C.VY"VUPDGJ/DB$ 24H:9!6X4(!&S LGF*%KNXY9M(&;))%R0B)N
MJ$.Y:A$IRYBFCNDVN[97&-NX6+[ V-%M'6O?LAX%>-2W(M]HEVFT.<F[RYX8
M^LW*X\R7Z\#2;!_'4SOL=^9Y5<SH"<UR%L8S-XR]0]:C[8F[\2*\&O1-RG%
M3H&$53DA!^ZD8XD"&(L44V0\L;6$G!!*DN0<PMYZQ*4"Q);.(TH<8"\)FFJV
M9_35G!Q8I<J#K'J\P-P31=$7NKZ"#0,%&'O [P48OP:,/AJ+F4O(:.QS/H\@
ME[1%5'.?/!&YL?Q:#M!K\&2C!?34 7&6ZSV]P,@HXZ-33"6[;[>4<%F L0!C
M <8#8_0"C 48^P&,BDO.DS<(E@0C[FA"3E"&"'-"LJ2]36L=AB.G7 25D*6<
M(RZD0(9QC43$\"V6@(MFK\"H!O" !1@/'QC+%KY7N(6O(&=!S@- SB03PYHZ
MQ*),B&>_$CS#B)B-DB>M%+%K9:5$&0!7[Y$43(%+B2.R#CS,()B(/%B/<S__
M?>X)'&!U:&U77BERKB1!X8.%]_WS8NE^G9T#,GCX'.K/W;?YPO5H9N<KVG[?
M_KCUM\665VPX,Q(LP>0UXBI99#W8B29Q1CVUP-_A'^3-_=?N#W3>W/NAVSUG
M8>"%[WG;A^YXK5GFJ[48^N&MY%YI,*]9-J]C0MKG%NY)"!R)3UBL)7$V,<E_
MC&[Z8]WXX;B93>)'N-CWH&G^]::*H#HNX,#I9!8?)R'R*V_ZP%+^<]9,ZW2U
MJ0+_TF7\W7@87F:Q?QU/8T7H2;58[UX^Y<_UR(X\'%:=3B9V]"GF5JU-KQ^Y
M6A:@:QY;KF;@)X*Q;QXH:2!T;WRW;6I\/(M5AG4[NJK.;%/9:A(_CX>?\Y(.
MQ_!\R?IZ6$^OJF^G<.A__D?>)_GN]^MC?I[_N?T#>?<=F , BE4];:H?)C'4
MT^KTTR2V;%%]J:=GU=_/+_X]L]7W=O2OE4O.O[]]TO5UVY.7G\YW1_KQ^7D]
M;:\_3M4?J#C!%=!DF!$E[Y\>QBD8@_EO\Q.:F4/7+Y5/42=B<<:@FI[9:05V
M"FBFIH)+_.:G8P?G$S&H*(:K/X>W"RN_)#5.@87M.1B"P'OCV;29PO)G1NDX
M,K/:P[P 7\U\; _L+E/9S[8>9OLF&Z_M'Q:B,AU78/Y-QE^6KKXN%"=5%J^;
MJZP*%$@;/,E?9J-8,=QQ5\NQ/T8?SS//,=)^RZLO63 O+B;C2["6IW%X!7Q.
M;OA\T#X>K-!9=0%X/@[-277ZV(MGEH^3V-[C#WQ)>)9)"!^7WC[+)%'OFFI8
MP^6OJ3FH8*W]V0J=.B+%4-6CZG3V"1@FWY1E^EU8L+/M$%XF 0T[LOM_S^JF
M;JU!N.P'F^+[<0WKVQ$R_P9B.:UBYWO BOEL@X?KY9F>@=IHW[.I+ZMS8(VS
MIHJC?,@J*?+;UN>9F!-XALIE[R:_I:TZ_(D!67 $[*>ENT[@Z):J\H3J;]J[
MP&_FFP$\1W,1?>[/,(0U__EI#].MP ,OUZX,/B$K:@V^H#?KO_H 3UO[Z[5J
M:3+*"O5B6 .JQ[G.'0[AN\\1@'[:#<D=9XZ!>\)B33K KYHXS8L A]<=J]RC
MSD]6W(H[?8:MVK0^^\3.410EN!2<,X)LR E5+*VQCN81W]NP:7^X1J'F= 1^
M<G9+/D6PC&*S)5-WCXIZ1[8N.ZF6R-ARV@HA^VU5%BR^SZP\MX #H,S.8\;;
M?X*>RNI_&#^!X@5,\S%FC&D&&1"_1- V\&^(<+_0,8$?VOJ\Z2PS.ZF;N- Q
MHQQ1RLII-FE:''*S!A"I ?C[, ,@ZDX<5!&45U4G.!Y,.U .TS& Y S^ &<.
M0U:>L^%T<=%6_8+. GG-EVR N'6J/2B_*G7.SKPQ#SR@[?R=? 5X!A^;#J=N
M7OQ?>:QX?LG/ &N@N3-.68!-ZQ8FQ]!F!K\A"$ 2X  0XBP_,SQ5,P?VR=BU
M-D1'AJ5K9*O=Q7STR,\FH&_;IUNR8N M6N-GW#05O <<#/>US7@$U[L"331M
MC8K0/CO0\?IIX=$G^=#/=?PROZH-F<_@ SPOW&XX"YV]5,,+^VD+.Z/X:0RX
MGC$\DWYQ]8P0TV&'%H/YNTYFP_G"A\_U_\_>NS:WC23IPM_/KT!XN_=51T!L
MD;K;,W'"X^Z>]9[IL=?V;,=\FB@"11)C$&#C(EG]Z]^\5!4*O,B4+(D@E!T3
M8XK$I2HKZ\EK949$;OX!U@4D8!IZTB;)V']HY1^N*;P0])U*)9DAH6*E(JI3
M51A*#F1;ME1DT%<GZBHOB)= Q:-M232] 9ZJDBF3V+*AW2$DZH&Z-];0@IV,
MVB%J<$&LYK 38!WS(F0-(LLTNZQ9@X!GHWJ3IO!MS;L>%PZ_G12)\1JX[=I^
MYY+6#4. X4YS7/$BOU$I/,4,"]BO,#<#%9$_6C=/BGP.7)BF9#PRW^!,T%2%
M 8'N7['>K PB /MY7 N7X@1A,AM(&-(\S6:S]"OT!+0ZT*5@[XQ!B<(G,$-O
M)/8,%$]XL]--87-HQ#<]F2!T;E#%+?3!&(&T#"H\#?BJ 2Y8FCAQFRA2Y2R8
MI/EUN85>1O__?T#.>0K:'[2)OKP<O9JD^LMA# M&Z_X2&+R>9Z_BI%RDZN8E
M_KKB0A^<)AEQJCD]<S2X/(=OS):Q7$OW'@(DOUKD;!J\9-2\TJ_&^1?<(LCV
MSAG_Y;&=ZR:ZU#H08_\R3OZN;/?A:6M9[0+.W+DE,^PD0TON$#9T4;U4=96_
M:O\ U.>O%[#/^6S3H9H %5ZJ]%K=E*]>_+C,&>W@"ZYTPRNM-;_ >$A'EI;<
M^W=9V%WZ_EO[$;"S+'$]X79S$_T+?^OBQ?)V/5U#\,>W0K[E/-<3F2 GH#GJ
M*<']![T >Q;N$P5B@U[/@@8U7)29('ZF* ^=]"F9D"V5V(FK:);HB7<Q!H)+
MEH6?4=M#WROJ^<#;25P;C1LU791]19Z2LO@>!%R"2\"V(CWRYR\ZJI&A@W<3
M4-OA6;Z3^<V[GWZU'F4S,/C&Z+BE)R=]=9,577*#+8M65HI+T!)*]AX!I>@4
M+*F\8U4F?$F"FL 4U5+0N$G!)L<.*D=Y!E_A$%NW&B<0T1;,%G9.X543Q8HR
M?@:\KJQN8L<&#UFO\CZ#:.ASFJMH8_NGC9V)-B;:V$-J8_<FK=,JR$W>>++*
M?P%&1'6)HOA?\&UZ Q+L7U8L=E5W>PM2,!@-@E_=/)R>\9.;#LGAUV9**#!_
M<<+^3<LH_F!$.USRSLG4;U<"=Y>J<@=RTY-?)A6\-[K# OPSKX-R9MPVBIV/
MDSQ-\VO2[=IKH+PUR.MBHW.B:-:AT6V"*I]J\I^P\@3WUYD"[0Q5)+P?M::X
MK4LU+W *DU'<HHC54APE:EFE=6K&[ V&0?Y/#2BL46UC@P#UL%] -0R&1X?_
MXSRM=WE%X]/<I&[2(Q^1F9=FN:J=O\XRU+E79_S_7*3U1JO"!#/7A!4G26KU
M6[SX(^CD!0S*S/[G+]$,<X4XW,,3.C :^L>?W[B4#_CZ5VH%;1Y\BBK[5]?$
M &UI=7X8\;4JXL,TSS^37>)6R+R(QFDH,=>*G,D8?38NS-'Y:ZMP>_-X'9'6
M/;P\/J; A9HS,7QKHWVYG19[M=W3AS^O>;JC4/.:DXVO\2]N&3>E;K$C!30J
M#!0@8B63!$T4MCUJCI]@I9HR*#%VHAS]T,D;)0MX3F@)9GX9ZS315RM?FZ3,
M-=\#0"Q_:0,$*]]_P8#V\K?H1<Y6GC%7-\M?@9Z;K7Q7Y/]>\\SK)$U7OL.A
MVN\,QV=Z2K(9_UZD-?9GX(4#VC'AX(<R 7#%G?$%,+CD* I\?:4*$Q(QH:G-
M3$GKY,7)5)#5M+O@9452?BY#0#SCOD9>0;8HZ_F"=[8'+BJJ\L*$S=BS'"E<
M9\4^>-^"I6P%&#DSOO6-FQ +C"%.)A-=.)=T:ISIDYJB9/9)9LYHJQ88$4H]
M!ML\WP%FRZP?*;GSLZI(QG6E<1S$F3P8]*D[( L#N(((AR&^%&;",2K,;\@Q
M7M@P/.:Z))G]P8BF!@E+LRVKI$($L^EN0'<[3,L5K8R']P!(P=NW84"JR-
MQE;B X,0M0T* /HA=F)4;!!X4A6G56#>3[W@*.)&YL%8AHZ3B-D!AF$6B1<3
MB%T7^*9Y7@#5RJ^P8KD VX(]%)RLA"1"H>KF5]"L!@A8>E'A529N0RN?JNLP
MN-:<(U6IS[@^03Y.;> #EK1>T/,H0+-Y('!AH2<8/K)<B;R1%%$]QR@4L@)9
M0*T!TNP\1KNCJZ#/"1?OKG2!+J_=^C:_Q2'\T!3Y31-^J" %!1:Y;U$#GT9!
MJ2:Z @S3T2R#H4UO@L@&(QFNYF.,NR'3J<.X2##5 %3/NH%C:MVCI_ L#'.7
M>7$#V%%@P+LD;0HV"2A2\"DB/@T1@U /P)>JN4F!2.!Z&IHNREFR& 1OL^#U
MHDA22J>C3<9*0&Q\B3Q&3%(*@X^SO/JXR#'(" B518,0-]1'/#(#^E2&F\U^
M;W8920) I7&1*TKGI?@^@M<2669%7D\Q+W=:L+*/L(A!U2R&+5#<'%IR+LT2
M!I"G9FZ@!.(9HIO#20Y@C*D"EGX4CL60OL6>0H\+3DFD*8,$I, MBAP8[4<:
MU$?@N.J>N4)+9W_*&G1FC]].!L>GIP_G2_^U4[G$H#)5:(4P8QO)6E+NHL_<
MO'!H8"4E\\GD97"0_,"V7*JFR)\VH-[BO7U8D__\C^'YR:LNK4M(A+7;**^K
M. ?0F-89J 95$.N*-98PH--ZSLA.=<%1F)L259*JX+P=$,K#\\NOS ];O#U]
M#GL7B!TU1NIHA"<;,?6B^2[*"U!WC!&])GT[A(T .^%- 0/X5,!P"^"GT^-7
MH2=7EH&PU&3BZFR*R=2T]S1F9I%V>X7F$2A+I![G]EJ+NJC$X1T9!<O&)CLX
M*E"3!PV?E)#()A*7K+.KJ, \L'^#A"F=F@B/GE++.52S\>PE;#<:,$\;%+KH
M<\KY;":1)YE2QHY+].'AY2F81Y$JT2H!2B IX(^_U$D:^Z3(R;N=+[P)HEWE
M)=09KB5G ]"1)51A([*A68PT5>/<!.1PXO;%5S^@WX,R\C[ AKD5>8:CX>4P
MNC.+_7]_1Y&5W_\T/)"B2XQO<_<Y9L1AUE@OTMPE?"T4R-JT+;$#] T<7B5Y
MBN98DP:)1@UR)1FQN+37BI*W9CI=P#)_ 0;]PT\<I,P_8[4U#R'K:([14NV]
MDC4/6&98Y?<@LO0'5'L,=P6+_%H;X^.#_IR+S+DG-\ 87O_M_0=:@RL-K)$V
M5K01,U9+8\Q*-1^7*(/7;TUZ;#1#1 ,8*6Q^ILYF=*Z@O>\U!NH3X* ;NM&$
MQ]&3G!Y6, =2/\ 25I@JN%YE]A1!8+W_K@&LZ.!,HY\V6CCJDQFKT>RA)$8)
M/A+DE*P(TT .K@# FC,H#P\BW\0RB*5=XAEBF;>'?)+F6JL%"@6GGAA$'P1H
M9Z5E#CL>/4KL]7 &3V,X&9?L.IV2;T56:-DU39:&]S5QRQLU7]0,)RL_&8%N
MTZI1GMXL<.<#!Y5S^$<7AU30P$-#DOO^DRQ:D(@L/FN3(.VK#Z'3'5! XG@,
MP'W6G 6K@$%A<NBJX9 V2=0Y)XEJ\OQQWK/90HYF@'19CLX&G+JJJUEN?,@4
M7G':X@1S:8%&M(EA.*4RAR@3EO:PK'5E+%*XMJ2D]@4&5'@DJD#U?]"V&H._
MJ3'ZBQ<HF!'UL_R*]S3-SP1X/-O9R@!82F0,6.8T3I.)=EY(G5TE19ZUC@K=
MF[LOY*#EXWB/ZC4&B+=YC7&(ZS]+IK/TYA!/IR4PES]T##LAS>O8 $693ZIK
M5;!:.2TH7D>@C"GB1:(K5=R$?#8NT]4A:\9XF" K42<& Q7HP]N-1[+,\YSE
M!>^W)Q@BV#<JNK',:;<&&4RE4;U7E'3RX]@=![I B8IOBF\U<X6+TIN6LFRV
M#^G%LSPG)=7X+ANH8B]TG;%J2\X;%EB7PZ%5R?#(!MR!1S989XIF[/&$&>"A
M4#W3F7F8YE<A'+(4I:]AG7%L"8WE"G5^%'.D7;%$)^@ JF/^N,;#)!,V+ ":
M /L87KVS.?@D"@_@[9$F1=SP -.IP 3VDC1 5 K@+ER;HJ!LP-_P8(L"10UI
MA@'+97#"9#E>2];C<)7,>K,M;(P#F'F4E#@UKE-#9V;,@0'WK#SRSL0 M5)$
M1JN:4)I&H] 87YYAP%D-F\)D!A( 8K3U#T:J*\6QY=:[!L'KC-G(AB )D1N[
MG!($YVK!.K0%WM;!EC%P;WL""9ZMA']9,4]O. PR+N'^\3IS,B_6,JK5@\Q)
M#-I,QGJC<#E())1DBADV>3]#BQ*>]3J+BQS6>YZ#>8E"D/R6<JAF&0X=CL%B
M@=5L>9HT5Y7FO+\X&([9"KEU:%9%,IVR-E/F-5,?>?RM7?\/S(!O2"=P4?*W
M']XTX61F>Y*TA2(&=MQCV-?";VG#P%D0U\ @H"'/\/ <\&6L;M#SC!X^^%C2
M06C].0R.ST[M%Q3R1_8#+-+F $F.\YS;F.**GC$(WFTY+$0Y5"3,81L#QWQ\
M*.:$!GB!<TYXNR9T 6LD:(,K&(PD? )2S^NT2N#9%A]+&]0U@6\44X>1 F;!
M?6.TUT'P5R/DW'R:TW &F& AO/.#9M2>"FG+7N"/K0/\)Z>X3W-D%N?;CG2R
M<*[N95H.)/MSO[,_SR7[4[(_[Y[]^5REZF_:^@A(O%K;@I0H*VT/57FH#DTT
MU:I%"SY3F<>LH./M$4PMGP/LD__!N;H5I[FU[J.#H[4VWO)5-ZAO]]-8%N@A
M^+W&T<Q11:)#'RSW5OT:X0;G1/@5[\228R)/3;&2UM#IS6&@0;NUU9)XXFAV
M^=/ Y"@>8=M-[L9)_C_G9H%9>V[\P$9IX8T@HP+K_>4I>*$/CJ>CK^>V\9K5
MP&EY@W7U6"CQRN4_E==Y00/#@SWL9?9/?$=4<N>;5]AY_)H%!H)I2U]#6OY*
M6\.KL8-AV@I^J*Y12:JN<VN\K*W+0F'LF8K;OJS[,4F4FXHU.(+2%":B!"IT
ML=.O2-0KK&85'EV<!<RV6$6&#F]/C,&YX0H:YA3M@I0\06]N?1T.S1^J2SD=
MGE\&D1]2N\M3MG;GN=>-1L[?]B/ ++Z5(V!4I":CD,-'S!'"O0F[8!:\GA2P
MS\+@'T4]K5$K_DNA_DA2YZ+ZBYJIN;(6M'U/28? 3:4% %FLY&.F:2OB^"^[
MG1E&9R<^&R*K+9-F$/R:LXL% <[Q-.VYBE/FN%Q$WJ"?V59KQR,6G2][9HCD
MG&"BV2BS2:UH N?V"* )5'$Q#';0E"IM/)\>[E]S91',Z41/<QN$?#[&=-3F
M;?3F^8*JGJ#SX-]Y8<K6M9;=9F6CXZ;4FDN64>+?6H^MR81E=O$ &,R1FAP"
M5,0!5+TD4UX9AP ]6@!EY#C&< RS6%Y,59;\T20?8,&7O*!_,'&1ZHW00 _9
MA0_W&S\0^9A,E9'V!2'_1M1H1@B/:H1)!!O@<)'6I96YKSEW.;QURO1$KAS#
M9S&IZ-N4,($YM/2+OI![Z9HR"Q5J%<V>,[$++U?)V:DI^2Q!$A<<B!K2^H,6
M#J3-@!]A/:EF)KQ]6F".%Z[?IP0>=T($/%UU0)H:2)CXC2Y#6I")=@,;'ATM
M2<<?3$@#3V$@+>>6BQVPYE]QX]+U* L47)Y7,&@6D,#@);^5*YRUQ0C6H:#<
MS2Q6P$!_: _C05:K.;H"$3VQB@WFWV*-&G+0K1'5 $V"3#XR?4S(HX%A,>1Q
M4L]PB487Y)Z!'3W-E_G?%0@R'AM"%EK>,8+*H@:A6>K#U#@"5<9*%*=#FO,9
M-ONKM=>)P5@=),6<@_6KR9.F1@IKWWPB)DW*&6<0CV\"%R$FAUC-6VR="[YQ
M:K>XE$)*Q.)C+O"HLRFI%)Q]"7]5!FR"10[CTH=-.@';7/"@6;(@43VITTG"
M16+@AJ2PVZJ5M6Q\W#PD"CO /F.5&O!CD13.HVPA'I<,=Q">I$AY\5#3^ZD8
MH"/O^/+57_(QRH%KG:%'#]>&#E>8M'@<.SJI4*W UX[Q@W%>>?&UA.@!8YIC
M.8,RIQ-!TSR/W8IRN=3*ADRN=)HO",]1RF HH81U=@4%@1BA"3LB16,_>&Z\
M<YN0"@R1E+W+A$@PD':Z9T)BRYD2<_69W>5L#5]I+\_?:BRP$&DL>+!D);-G
M&+ Y;X.GLC47+0LY^Y$*-1NVS$C'8"!G!$G0.<P,C(=57)DGC"&EJ5-M2,\A
MNS0'#@,,HJ M5FJPH@I7NQT#-_8%'4)JS@10@33TD?/!/190^DJEIBX\U8@K
M;0$XJH+$ZCL2TSIRF^,KS>CLPTJGE:3)9WW-%>2,ON:[!UKU1U&[$+5XF=GH
M$ II7S9?R[/.:XJO%:43-+22\(X:#R.!,EI8>"*="R$'7F<2*EKZ,L$5%<+*
M\@!9XQ!X?.XMJ(VFE'KI^83)H);/,!G0F?CS)4V7#7MS64 ^3:=$IJ!A8:SL
MFJ,#]YTIJ7P&Q)EU,4>?3O-,$LK0Q3 <VJK-TTAI]F>33)9.N;C3-34?S$+G
M"NF:E"4_UN:(5T"9DEQ%UYX',*3VS^>T76LD\%VM8D!M$U'6Z42J7G=Y4UIW
M5]P8A*84^F6[9O#HW*OOW*Z9?$NM9,J&IF.]?IEARL>E$%O%@CO6%E(GP<GW
MRV60MWC^+4:Q>Y6.E^)H9[82\^7WQ.QY16<;^4'+A9'?$=A3(D+CI#'@;VHA
M&^L:5^*?>?&9U%4V4)!>H]/O7593ZTU;4]-4'5IYC7$NV1_>@*0$59Z=N:MC
MP,N'1]\OK\@W#>VD/30[@CBQQP_1<B5Q:?$.8.?O(/D)%?D!OY$7WBB8)-=!
MG:-PK<F'*36?:4440NKCV.Q5GD=V>1!<-Q4'T/B_7E=L0&!^"Q^ 4IE+'@6Q
M@<=B"T9-"[]D^Z,/H8Y0HP#M%D=VG63._/!?P4+&#$$T@>U Y_2DJ4O.H',Z
M&IRL@,Y7RK-O!SE>7M02YMSA\?> G./OPR?$G./AUS#G]MD^ .*<W1-Q;J][
MWUVE0M(K]B^]XD+2*R2]0M(KMB7RG;5S3U8VHM^KG-,*)P8'38[S^UH7H/-]
M2*+<"9U_##X.@O]-D%C!VS+%4O\_+ D=-%^66IZ,S@;'ZWN>4&7NRW,64Y<7
M7Q?+G14]PICW5N&>ABU!G3U?4G"'#:,*6_:4+7_CS PT0BMNI8'6SO%J5Z:+
MAW*P&!_HRCM/!F?M=QY[#/E-]A4;*WA"9EZGM)%BC:&;BEM0#8\NEAU*PZ.3
M!I(QI+M5TZFU+"]<9KGL2ON!,7A7$H/5:0NL4%D6T^S!A (]'S-%AKGB$]Z
MU:GP- VVM*'T-@RT8:DEKF7EGYK$.VU+&3^AI14@P02B$!-9+&*ZT/ZR!Q^;
MSYBGZB^F4HA+1'*/R"E@RHYPSO"W6?OAII2:U;.B7"R2VWFTDSW?K5"#/$"+
M DSY E;*4,8F&O+A3=P >D'^=I,FL:'DAI_>0S%2FA-.E()QZ$KB)Y8NW6+3
M>=<!F-]XV#3# ]37ILJW+4%9Z*DJ7*H9V]OH2*B\S"[TT,WX2*>*.%H&8BW6
MO]<889B85 &3L!3:2N*5+6+$#J_$'E-IXGD87>18K>D<1,%[_24T%<H3$P9'
M)QSR<5G/;?*.]P(:,H<?;6CNADZ4ER88"*^[H3@//0PCOYC22?7O;(% <W*/
M/#"N[*9[@RO.QYD'5)N #E.QPY*K(>$4;!UY"I3$SC-#82-W=,3P3$->' <'
M)/G,U_HL+Z\@A]$^%JJL",=-[E>;USU2V'0,.H!#L5"3V(,OB#&-H*)\BN:&
M0?")<L/&G!U0TKE PT*F.!(>LC>N5RX<0L3EF+\]-V_VF,)T:H*4U=2UYD'(
MTB;P2P%59&[:V H(#'!*6:1483)SX7OT>F73FDH#X#980P+>/C,ZAMF<]>$7
M.3<<+2\'O3 5Q?SL9^;A>6DLBFB!P!I^W)_ ;&ZNH47UL^R[5B-UY/9P&WEM
MZ0 3@K0;FC/0C?>9&<9+<L6$!TK\L">S)QP[Y+L;OE.D%!*9"$PP\T8$Y)*
M) BGO'*2D@C>#?*VI./XQA6&H/*[E'G'C9[<2=7$)'"N$U+V7%D[2SYL)[E3
M PC7,\INGXV=3$-3)\'D4_%1LY4Z":$YJXRA6L.':[IG<>,)PI<6^WII/>W'
MN-FO*:)!V?3QOU5$A7V0X?."LI>I@YVJ9AR$:?8G2]36VZE2%8HF>J_56)*L
MK!"9.*V?:LE0%A9*7]A0G**"*4^<^]5*7G,EB>W00UMN@$F$A67@@3'U W,+
MWY00X0UEA'].-YKD(].;M]%X*"W\$!N$M3G%/(S/,[LGT"WXW,;^7&@_E00&
MAY4-J( )B@Y-E+J5>5?4!NZE]N\Z\YJIX>_<2\36<@[>P%:%Q<D29:+[),@W
ME."@.V9YN< JWZ557%+.ZF5 \H=@]T"D@+;Y[8H*G7RP:@HH!W5AMV1[ZU&^
M+S8P3'78.OB/M/=@M9W&N*1M80ZM.==M]K&)TRRPU"Y9,V\S3LLWA:%L ##3
MG/TV-EN+Q=IG_(D:N7"*RH*JMIJM%!IZA-1 C@]9,^2SZ&W-CY7*I&F;[.TF
M2FIV,@T/4=CR 3:E!0]\L\"YL5GCBBPXDLIU8FJ;MBJE\+GB!G)(BG^R:8%)
M%&)@#+6U*/A;3I4H\?!$TUU91(PO8I"@QD1E2VB-PK(FMX<,M_819)(KSM!Q
MMI)Q3SF10T=?0GOX?E$79:W;8(5<^C<L=!:\IIY\RBOT#&!@E[Q)D@S^<A-P
M6&*=2N65Z6J4&UNGH#T[+VINDFNM6L6;J*!XH<W$(LP8!/^57V,Y*'H05I^;
M9ESORR.43:IJ4]<5^H?/J#(7">5_4I85:^JIZSO%Q[]6D[,</>H*NT-9NBP=
MOWG7]*ERR0 IZ@M+([(X2$2P/2G]IK#M>F5>#3LLG)&Y,Q%TORWK71OSS"V,
M ?0<BYW@J?!\;C8I2DH^\4ZUOTF&8"(CX:[W@$;W9S+C-;%.U8V74<F=L>@$
M''MW2-J8;JVKIA\?7"I0"V4MV3LO#_Q;Q(<HO6\<@#M;G,S %+-&2SRE5.C<
M\D)32MXH*LY&:.;)UKPE!]=7B9OV#WC;E8(?S#&NYA'MDH:<:0<@0_9]P;4+
MR3YK69>F6#8?VZ)$<3X'IZCRADJQG<4-56_$WVY\"TSJ27O=\\"RPOM,>8J_
MYH=_ _76EDI_TUA"__#R@9^ZIPHM0'?E#M(P:V@XS0]3CX:>-=DJ2^ITB:6C
MLINNM\= QS?+%<UN/PZT5$7:8'E!QBH?I2+EZXH?W7A.8E8"22X"G.>Q<73X
M2,];'C<:Y9+3^=*0VUY36DZ"0M!<Y]0AIVE[TPC)4W[+[-G=I>D8)(_#4-LG
M]>J0X[IUD!(=21'H@;:C Z[VIC=:=9A'J5<.O#JT)JE(QW3PA!M%CL9Y_AD+
M9O$Y9QA)80;$_0XVD']U^*Z'(+4@)AE"UD=GHTV2?[-_^3>7DG\C^3</V=RN
M5\(]ST@TW5V^DV\1BX0ZY]9<5V !DK<;!$AM2G_Y\A0^DEBPII-Q?2\T#,$>
M['I'7IG[C,B$-CBJ3>Z7[6+-+*]4:3K#E2\]#@/>"O[$I\G;<$%;@_# ;$U<
M+*0V;":\_! @'PP]OH0)/SPZ&AQ];Z^G*N&+4K\LT=D(ED=[F]%]+^C],  '
M5E=)F;!G\*5]@+T*+HO=GJ07GEP,SB^_]V'$;@O"D1\WW3=\HGLN!Z.348?'
M=[\YG8R>;$Z#TQ[.:C1XJC<]WJS^]&-5K.Q=(^ZQ^.]819^G!7J1#PWP3^B_
M5]BOC96+EZQBX!?KQ<&:;=]6.(Y(JS!?L2B'+Y8JR+.46M%+O3N-V.?'K6F2
MM$9B7CRLFKFUPG%?+:**=T'+QZ7=W?J"/PCE@)7QIS^_.'OQ*%1T2K"UG195
M0-U4 ZLW=99G[^T0VZYA$ZD\O[*J\W-+U7E:/K]EA1C@CHZ[NT:"*X(K@BOM
MHCY?!%4ZBRJB9.[ELHDP>!AA,!)A\*3" 'UF@OL"( (@ B#W!9 3 9 ^ \@>
ML[Z 3F]!1[26SFP#87T!G4Y07C2=#BW&;EQDE$2SZB.+@%:3:(./;#MWV-KY
M?&UMX?YOM,D>-@7LGAOF\3**[[.A[K42#V(@/^IB[$Q*^R_.\IY0\ZD)]UB,
MN!9G'Y.8]/9'!8I[J>["I,*D7V%2 5#AS:[RYH,"Z$B8M&=,*NKFGE.S+XS8
M0[2\%"85)A5U4WCS&?'F@P+H<"A<^I!<ZOS7\ %/%3[[>AYO6JW9/E!I._KX
MSAXS75^]XZ%.\SZ8G_Q;*$6O>HEETI+H#K1[[^I5<NV_7Y),9=2(DVH/4:&*
M;ZF\L(,I/4 I\&]8_XX=Y<:3TW6FZICJ26'/;)V5_(E"@51::>(6O72+[FJ!
M<+4VJBKO*J]<SW)J3'B-=;6PCV<2)ZJ@.H6OL7*45W&*"E39FK9CE7*/*ZH>
MAM6:E*F U!04T5@D*U.NL;<=Y\;JHKT#O7OR_0=3VE$J%6WJ_K6^;7>KJ19R
M>U.CAZJA>FVVN!,G'NRG+N*'V$6<6W%R#=%O>H^K<-B\!G:+>7Z(9;WH+YV8
M>CE-V2,J93G6U37NG^H:.S[#KK$UQ5<+>+?*(U&EU#=JOJAY$BL_Y<4BYUEA
MO6C7E[=I;=^:IADM%=JC&FW*5"*BYNK>E!<P'1[@2L5:5>J_U$D:F\JD?@7;
MI0:@6)OTMH%PQ:*D]+JI>J,9*U.VOEV-JMV:WA0T4JAJUJDJ,!3=N]X7=]%R
MN[_?@7$24]YRKOZ=%Z9I'$JN]BYL,8PML$PEIYI"D*UK)AJKF"G4N[%?"C$=
MR#'$^D.L"&39G]K<4^$1[ 1LBCKZ3[+MI7&'41M'5X,,F=9M,E-,C)H K^M]
MS97^!L$;5^PKMTV'707^3!]27=]25X?U@J?@.F_P=ZY= <&&+9IBQ^3*&K>K
M@84HP1-<$%,-='V9Q0"K)X/. 71]._%?2@/!71QCYV];X@QKGV,]<RHB"60-
MN0HME^$U:Q+;);!T1IK [1-<=:;-:EE;0QA:D4'PR0Q]FY$W(_5&4',E;,Q1
M*1ZB+TB_=B !LQ.';M/!2E&W:E<.'X65U[B@]7,T S&J4]8@@4%8PS2([NHV
MSU"AC+W-^R[3FQ_@51BU+_,J#]O'8NNE'W!KPU2QN71V" 2;)]BCN\PG%78?
M:'C#-,O@6LZZPG>XBRK[[!M3-I!+F5+A?YVYDD>F2'A3XAV_/$A@#/#4B2Y+
M4Q#7/M;KBN#N:0K XXC67DJLKKF*KVEEBS6@@;T5=9 PQ#3%"<<WM@@KE9U=
M+%+Z!>=WC2TY*;G0%"8OL0QLO!79'8F!3\G!!50#,OHRW\IXUA^\5Z=+]/ J
MXKO"W*TGN7+3*U#FRAG;.N-<(Y+KYN+Z4)OR%#:+B/K. @UV7_/5U:;+!B4'
M4A7?1O%+LJL<BZ W>(.;X/3H>RN?N=F9XU2J@P]B6B\)$!#07'Z9MX<IZVXE
M*G,/<A8^V=V]3M.@CC)?J2Q*Z9##X2NKR(;>@*S,QPXQ*OJ<Y=>ICJ?:]CK"
MUC?6K0,$,#8#"2QT&SHQC]:Z7Z*TW5%HSGV*_9X0:ZE*'6Z2HJQ( +M]UIHW
M5<'?AJ+FG6N-E#7&2V.AM*V%KS+ \&C;U=]B_:Q*Y_H$E3DJB%@.<DU=:_:4
MD&8Q3JC?!+6TN"*ZHQ%BP8T-/K-PR&Q&#RFP]H)"36>BBZ+I;,V(7*$39<KE
MH34W#4!CM71\93HDU?"Z@IK0 .U"OSE(2)>07T:U/3KS!<[$Z%4I"IB22YD;
M*<^->]JC8GT;K68D!_"W^2CHNB_H&AHU)Z'V-/,\1A%?-C;T!L?(*GQL\YC&
M\?%-4-"H AM>2R]L/ ) PZKUWCNX)D+W='AN4_^_>7CH01&(IYC-N57'@^DW
ML]'_  98%MVXXOJD:E.3IB!.2NNGM=W;0-W"NOY7>GU_%I0+JQ*4T"#0DPDJ
MI:Q<D:IH.D:PVAB2H$A9PS<MQ@I;PQ[;<UUCQQ9JPV-[A"W98*]7.Q'!LZD?
M'/?>0KA&@C9&K?*?32:8 U1>X4B58%2G^34#CH/GTC07,O0! -7)%97P1)2;
MI#5V*X*)F.+9#7RNZ4A@6LB9"QJ7EF!99['LMW5ZP%J9WN+<[?4#<UM+IVFT
MF0_FUW6.A"571MME9![KJ1:-;P@]0JAK 1+,$&[G>8G[J+-,*'72]ZY.^NA(
MZJ1+G72ID[Z!IJT&OH%.30\N FV$[P25M4);CUK2[O!&?FW4X+ =+GJ^41N!
MV_,QV6-&U<(^?=PM X527KCVN-1,E&Q\W9) W'J#FWDEMH"ZZ5-?:K]CY#76
M+\\73ABQHV]=R)*[M@;4G6ABG _<BK:ETH7<$;::D6/UFO53O^.I;77HC%M6
M#TWG#WPT!BI 0TO2I3FQ6HB:M9ESC)[>J#UU[V>:7872>4,DIPD$&<>-&80+
MH\ZT1T$[[1SV<8*^&E](NS5VK7[;SI>U,S%-G($X,_R#Y?O29!H%XNW$V2G4
M1"9"6"T;9DNJ55<+<\'RNK77J_%6E;HR,1E@5'A;=A.2II+,R85+G8P;K454
MW<Z"TB<3UV@W4?1<87Y 9B4*2IZ<EE4;I7D='[)]'H.NNK1YV6.% 1C7M%G!
M!KFAX'N>IQQ.)2/5[OZFYS<UD/2")*#K5>ASI(9S63N"@(B6D$T[UM3'+J56
M:=A4.D'_I?7U ^CFUYF+(F)@Q 9#8' _-MTP$8*QD:IF=X'?V]-%(&SZ@!FZ
MM=GA';"G#NM2MSJX_]9N($C=T-G[93H],2/!XU3BS']_DK*M.KNM-@<U:0^U
M7$V*/>&'^>00@/GP<T)MXJ<)&9"*>D^ZQHMM5D,E&3FWM.(_,JVA63Y@:Y4D
MHW8I=$^"@F11DZ]V@3$\CD74IF-8@JL$-,3>RWF4$&M/ZPQX/K%J"+48-^H$
M<2/?DD1.[(%<+ TN$*MJ;!+_L049[)%K/&/-)K#\7R9 ?D4""94FW^6TG.%C
M.]-*3'W%&;LN!O-U-$>"OWYK$'Q3H^5-N5#P]N(&333J\89N60P-:_;*44"B
M6Y@EH.63XRT)KS3YC-J;29SP^\7Z315=6S^OSZFZ<6HM!JD()T!8E<Y-2J(0
M>_&FV*&]1(6RQ(9/AOFL%YIE)$EQNMTT7N6&L*5P4'<YJ-W5_&]J3+H0]@5F
MCJ%FM<Z$-4ATR!@.=Z!ODHTIF\*U=(&7WM4X:)N,SB@',;I(Z]($9813.LLI
MOZUT3 XM3!1)R0*CK$K;)'7"#4E-U,8Y49"9O%[:28;Z.4HF_!(! Y2<T@2-
M*-:6!>,ZGH)Z7<[RHIH _QAXF2EJ,,V&-J"4:TE'_9"M1YT\% H;15,#:N]Z
MQ2W5R!3A;J7DCLE+&QQP4:F['DNXMWMQ_\XDO,$EEP,)JS1I':^).'+3SJ#
M-(NDL*<#V!-8<1XA-G:GE+Y!\&;YU@6HTJI(*,QE,NUB[+J,ZG]"\=(%Y2UZ
M)@%9SF! T.K^T4X%RI%VD<D,1C,6<_] SH/9/:\S:R:8A]+W)8577<_V6<YY
M=IQ?S#$VV$^IN77=+;GK=H\WO?WP)C3V-WY5Z'ENPOMYQO%Z-UR;1\EM)-LY
MEA/K#FFL_^:A[@F5GQ:<9^-<%3%[Q^Q--EV&S2+,<_0S.WDNJ'2[P'.(3M;H
ML]&_T3,(XU ND R !>H3WHOJ] RLL:445]_>:UPE83!1$0-4BR/:BTW#6<,D
M-FG5.W/B[% 4Q=9<TU\P%8S'TWJP]2:N8YIF+*![EMCO&5V63F$$=?&:<@$,
MI;PQK#Y"C,"6.K\%)+"WRF* JD ;']>5BRW@X;T"QYM/)HUOVCJ!L8>WB6Q3
M"EIKT_M;M!'8*:QCM]0R81F?98Q!K]'Y0B[_:XIK8*B*-*]E:*!T'U:Z* ]H
M3,  ZA%VEBVHQ2_>EV1EI2AM<<Q7\BUX3BTU\1^+E,8%X39\(^6P(WSRQ3BM
MXIRLB$P;WY4=!$H:8,2:7!TDJMS+<(#V:8/@+>9/LDD9;B?S7)O[UN[Q<C-<
M3@9GMGKG2]PA/IM/B2=I&U>WH?!]J'NM6R&S)+L"DQHO]A5E3/8GUR @,"NJ
M"3\]II-/TR*_KM@9S[O9 K[GK&Z1:XZG<^TIH KN0[GWAY%7YFP]>17'1:YB
M4BY:)X9P*>$9-0@E=D-BK-/+&?V]1MO =F2&^6$2!/O:ISJ? ON#-@YDFK+$
M;++=^%5_)2=]$;P!0U2U$L="@V 19]LU]D(% #B9E)S#3]:D-Q58'M 3\.0S
M^6[QJ>ADQ4?]8_!Q (L*"Y\10]"1 +=F:QE9X*^S\(=N4[?YK,,T=F=_*+-;
MI23MU/HC//:<SYW/[]SEZ,X*3OC):D:+UW,"*]U6(9D9.79 _A7.QH ;"5G#
MUMDV:['FAHE#3_MTZB0_D?1?HY!Z86W#^>@,1)6BLXPON6;[EVLVE%PSR363
M7+,--+4N%G?,$Y#\RG@?TCR>DK,=3_[4&0PD3J+*.C!M_K++6"=,8.<I:(R^
MFK;^>&63P^:Y2_W;;/H\!7VLIDJR@IRLE/D&:B'IF3?N_!!<9 X!D;2R)6A8
MK]LB_'LV.#L[?R9ZS*=U7D(*N_NI.NW3*LM'8-IE,#QC_C;-@BPSS/IA2>+<
M>8WN @2<\3DS]*>O4T+V0#_NGK/^\7WS[YR;]6>#+5(X:QUU'/)B+:J$]R"?
M=V(_<_%95Q3)Q%)J+@G.4_1#KS@0 [:*X;4)5@[!?>+>@)[:#-%/4;XPO(1*
M'N >RVIRKFQT)3L7!^KM%'-O'-1F)Q>F(@K"B(_>4:M\'A7N89%1NI$%:"-,
M<Z[P]9MVONFO#@<NK(O"E?+*M'?VC+PGA6)G)CTIR!?-62V;28#I>/1CG6&6
MJW$BFQ "NC7SY96RH[UI)[6@DP>]I6"'X=.C9)' I-U)Y8DY&(=+!$KC WB>
M=UA^[#&"N^BMRZ/:4+2I#8&"W#B<B*/U]&;)19,L.2&7?)!\LFIE&;?UEA&/
M.5\6/,G=;X(.GC>,O6FVP%WP^BW)/ZY[P0<0ZW&*02(UT7[%+#RM;=R:>-6:
ML9*?R)TC]-VL9)RS)Q'H;Q(>Z/)&&L?:3),.8,/34=QBI9UU;J;N5[][?.'U
MT0'PKQ: 17JM(X^33PVK-N$A3Z(Y<7'8CF6NBR"MD7[-_1P;3LB**$&<%)B<
M/;[Q;O0N73,Z.H]1*)0NL_R:7X-)JM9]QZ<;T&<\)\]99E-!^' E%Y:TEI'U
M:K4GU2V%5.J5^H*&CK)N8C+'))2HZ+S^%CUCB_AL@)J3+D[9P/'\$TL7O4$]
MX#T?L_])HV^4U;0&LV]Y^5)$P)-MAR3;M@OKH$QB45),59;\T20$H(G<G$??
M4#:CK=GXI]7MUK/#]?=8I#" /,W<-HDU[3&1+*TRJIX6_U.CQ<LNW4 C/Z3Q
M<#)FDS'5%C2KX+\2T;!M(ZW]Y5=<LA$.,FHX^5E?Y92,4S?UT5H3I*(8_OPP
MZ,H74)4=RFXY)%^-R9^8@;V!L9^P=9TINH:G[>:<7=@8(%Z]2J_>*=F-:D%'
M3.F J2M<QZ4W;,8C'?TTU<W\:Q[ HND/!QN#ANT!DTBJ,QB\9M=H85QI1$X;
MWYO4!9G6/D-PQ?EVD1C?)]<Z&/0>N?Z#HF(H5&O7Y3ZQ[Y;L*[:^\?@G%V A
M>3-VDH9J;U+A$3J,%W&B+%6T(2\$'4IK4FAQEQ2ME+LE1J/D?A5]UF0>30H%
M1EQ-47S+F>[X,AK]QF_L:F0N54B>UAF(E(H'Y]E6F'X7*9,*.*%32%=)GN((
MNZ6-R299V224T=+:*1O!N=DVZZH-4<KA+0<*V$+'BK=4L8CWA"F!Z^\-\DP9
M($Y*'X&3+,NOV*EFT-?/-64]#':38C\2)M90\MR7A0UQKP5AV-=QGK?JXP+8
MIBD!!BB&V552Y)DI4;GF7(OPTM<3T3:RU/;>H"R^S7W2>(N:5)Z-+T6E@$I%
M45EA _L C%1N69O<)^]8L9>FQ6466P+"RWT6IE@"&))NZQ/>-JX.7(5E!ZD4
M-=(6EG_*RX!F%95+Q*)*M,J3)HD=&:$J72TEFUA3S?+2&%H4RP+9-$G,LL+H
M#\W?37(?)?_$K5'X63:8NS9)*):)5Z9 >&TSA0A-KD'5N,K3*SX3,T5\N]+-
MR7EJ:=3&+22+T1+)DXVEX5"ZKZJ)@^!-DW;)2-E&0!I$M:@K=];&0I\[?.]7
MG^2RN-HI(4Y%IX)S[91"L2(;SOZK%^UYW8KVR/Y?3Z4-,;%OMR1-I.(*5&'.
M,M#KWN>9E:F>8LDUM!VGYI":"6P B+0.OI2A+2GHSHQP[&UM'@475VFNBERQ
M2C?9]2="1&;<09'8(LZZK$H0[&_4)SIKGDB2X_XE.8XDR5&2''>7Y-AE8+_5
M;'/Q$G>,FVM(S!?I31/A*3#'H]#62+!I*C WZH"'[H *K7YE2L"15\^FAX!&
M&R'AZ>E&KS;E,DQ=UYP]QJUD17Q$8AIJX&/P>%!@6L_\I"--A52.AV$P.AJ=
M^O75*8]>PPQ8=?"J*6-#OM04M(:[SNZJ6.\%2]SW0#DYN5%H_Z*2(OA?>U;Q
M#5F04UQXS*%*8N/D?R+AO2^M*L\ZG>7:+.X$%]<=1(V:Q8W\Q5VU#4R9*GL^
M,"]<;-A+3-[PL#1I3M*Y!@O4)R?'\>%VQVR&O+9%+/!I*@+$8>1N'V9FYZ6-
MR9@M3[?9FEAX5$ZE-MGM*BF];@GH:N4Z8&"Y\/EJXUKR*#/7U2R/N7(>NMK-
M/:[.HYFEG=>-PR@[C?T!EAV4KGA'-MK;+,*2K0<F1?:'$)XNH> 5,B6&3-J1
M*=-5V.S*9J-Z9>3,76'SA9_%RE6E*(FG &D[PRY1E?K2),MVUB[KMN]K!UO)
M;*)/ZHODF"\W9S8[IT+:4+2ME=FCYA2$<-HH73O6&$VES4#1JTQ1EO1$HRA+
MT5EE&Z#@=3!ONA0U2W0_Q4@$(]G0U73-73#PS) ][Z$Q[<&XMTHOU7H0_!?L
MYKS@!@2A/R9O9U(_*FKE;,I&\WBH49!XLMK1#Q/XH!S@>9ZQB9*F 5N#)BJ0
MZ:GQ7V$-VHR:5$Q-81JV>K $BPO'XZJX]DO$)&6I*YO-=F-T&_LM=;!(*C9%
M8"+SG X]VXJ!&19E"#D,T"0NC^U+\81Q4TC+G.PRI;.)%W(LUYMIF+@M_-6P
MNS!#VZV)*U*62ZO*JMLMLFXRV96LZP+9J '/"J^'?H5=J^43K[.V0G4^UG$Z
M,SI5Z2?#'G<4[TASBG+=QJ(MX2H@\K8PQ:"GIH8%+RV7/\(W)K,\C]VNVOS4
M,5>4YLYOM($F-:7FP(6$V[R?Z&UVGC:? N]8=[&I;37-B=/@A=B)FVO FRB'
MZ4Z0.:@@@\.DJ)+(H,K[6'S>=86*5%'<X$.<U<9>^JHU.?:]H[>#!9NMK[UV
M+6P0IT76OY!XI-9/9'\186V@'1=*7:F$BA,XN/13E[BL,OR2U]1OUC539KMQ
M6;Q2\[Z%+H"=J#H,M@H-/>L,[C(TQI!/8L_<ADVP]XI.>.#/Y8*27)I;K"N+
M(A@F^Q C&E3.G"GS%4:U@=FE#A*&6I@*89EX,_=:NY+&1(RT$I+WN+>QA9>D
MSKI'4T8S_ \%G.N,7;C*[LG<-&E/P,1/BJB>E]1V$G@?F$EA>;NW$V-EHZEL
MCP9SC>M%3*XRP^P4W+ZBRAW-T38\@&KK]/C7T1DF<L7Q^]DN3DI'?Q/UXPX6
M@KT;!F-+-;&30\BT83# ?4*;#8-Q<D4HM&$PC;Q54X55U\RYV;PLA68;!K-&
M%LEQWI;C(0O^NP;I>,)A*2ZB1@$J4TP9%;\,CT^P?,=Z3R$GOV&;Z8P2:.&6
M=YD._I),@[]H5</\ZA3^ MWA=43:&#WP *_#0]:CHU?P/7T:OOH!1'SI/!=4
MAR15U^PS?^UWB?<.-5!E-EQ1N+*=PX?9[ZYGA<D'MBX,CB5ZB82<&F^2=?VJ
MTICQ,T\J\Q"8M?<0[D?:]E*&MJ6H%[:C8H;(<.T"A*2L>18RZ)X4VC?IU$@H
M3B_$VJL5GR]K=0#!@_D&*XT2:ZNHL&+WFCN/F?A&F:=);$9D(Y7DA.&#SYQI
MV,0+S#/,$T%Q,NKD' ]ADH6"2=9 LH%DG^QW]LFQ9)](]LE#9I_L:1QCVT..
M9&T"/+YSU;R_1<UY]!'?-0JUG_'<+8OL@S0KDI*=$Y_(T?,K_#HK@Y\S#.S_
M=PVZR_&1S<L!D0@?3J15P4K9L4F.%@C["M&_1)X=/'LU@X\I^QGQS!.J1'%;
M^_!TCE9)?#X=:+,1V LWY\71MRQ.<)!P<]$2OBE_>.DM%N!>\"<SOI8H(]@F
M667$!I(-YPW<C)<?@CJ2U^82)L'PZ&AP]+V]/L)LX$6I7Y98* #FTQ8!=-\+
M>C\,P G2JZ1,V!7XTC[ 7@67Q4Y>T N/3P<CK&3GR3B+V23D?MQTXW!P<G&?
MV^YQS]G@;'2?^[I\S^7@]&)XZ?WW5&-]NF4['YR.AD?-?UU>COO-[^+LR<8G
MN^W;ENKHXLC?;:>/\N(__5@5*W!LK(L+$(QXU'U:X"'D0^<KP_]>70/>LRWS
MDBT:_&*]K%TV$=8@>]O>.2*CQGS%E@1\<:4+.NMG'L4JP8I9[-UIK Y^W'H%
M_>)AK=JM[9O[&BU5++1[$-H!,^-/?WXQ>B%T%!X4VNT9[9[-_KVWBV K,E/=
MT>_!W!0NE1W>+=H]FQTN/"BTZR'MGLW^%0F]QUPJM'N '7[V.#O<1:YMPL,"
M<\W3) [L9NL,I1\7 ]ZT,D:?AHEO(3Y[ (^.NT/^QV-T\8_NY;()[3JNO0FV
MVR2SH]&I(+M Q/[13B#BB2#B@ZGM)# A,+%_M!.8>#I-XD0@0B!B_V@G$"&:
M1%<60&"BL[03F'@BF/A.\$'P8?]H)_CP1/CPO>!#QT)1=(CMCK&H[<),:^?S
MM;6$^[\1B![V4/(]=\>CZ]3W(NZ# /VCTG=G,M)_<9;WA)IM;GUD+>XI.'(M
MACXF5>GMCPH"H]/PXN)26-9_S1/N=<%.P<Y>,V(/(7-X="1L^HTB_EZ&F "G
M *<HG3U T-%9>'DF(-HW62_8N>?4[ LC]A R1>D4I5. LZO4%*6S^PAZ, R/
MSH?"LM_(LC]TE64%1/><FJ)]=A8[#^^5G]U++GU8Y?,>J1'19'(TB>YR3/=A
MCN4^I]2(-WE9/7&N<5?HN.>I;AU&Y+XD8 HU98O+%N\U4PHU98O+%N\U4PHU
M98O+%N\U4PHU98O+%N\U4PHU98O+%N\U4_:=FKLY'>KW>CR%ESSI:5%#?'[L
MX'+T?6LX9N'V,&3"/;CE5&E7D*B7 5A)$^ALFL!P%!Z=7@BG]HQ3!3+WG)I]
M8<0>0N;)N7"II/4+;G:2FH*;G<7-X5%X?B'9_'WC5(',/:=F7QBQAY!Y(B=(
M1=44W.PF-04W.XN;PW!T+E9ZWQA5$'//J=D71NPC8HZ$2Q]%TWSHXZ*2*[&3
M7(FW\X5*BCG\@1D3BR)? *UN I7%@?Z]3A;X2U?A2N3F/:GYH$T81+(^"'%[
M*'N/S[K,Z?=I>R&\+K LL+R7K"JPW"S)Q6@XZC2["S8+-@LV/QM6%6QN<DE$
M9^XYLW>%=(++PJJ"RZ(S"\,+-@LV[QVK"C:[:NKGN\\FW"=<EG+K M "T +0
M3P;0AV?BU-BK1)T'+FI";]E9ILYP<'%ZW(=4G4]YI=(@NF\]>)'$(HE%$C]O
M28Q542YWWT!EGX3Q'O)[5T@GT"RL*M"\/]57]@F6Y=BLX+/@L^#S4U9YN;@0
MC.XYOW>%= +-PJH"S?M336:?8%E49\%GP6?!YZ>L6G,DFG//V;TKI!-D%E85
M9-X6F7=?MG:?8'GGB3D/4$'G2?-P]C'-YJ]%7I98"0>^[@!8=87&_9"K7:'F
M'DK-9R,3C\/SRU/AU)YQJD#FGE.S+XS80\@\/18N%>>ZX&8GJ2FXV5G<')Z%
M1^>"G7WC5(',/:=F7QBQAY!YMOM<CZYPJ:B:@IO=HJ;@9F=Q\V 4CLZE'_JW
M8J?40!'L%.Q\9MAY.-S]D>FNL.G.4R!NK4VR=J&WRXN0%(AFL=XM=*$JN"S0
M7Q8Z*W7Y\CX;8/^Y_9%%'"P:_O3G%Z,73T?&;@#TSI0'H6:'J2E;7)BR<TPI
MU)0M+EN\UTPIU)0M+EN\UTPIU)0M+EN\UTPIU)0M+EN\UTS9=VKNYDRH7QO]
M=)>UVH\&EZ,^E&K_J%(8B\KB $;Q66,HI:OQVO[!_#.+R$KB0&<3!\["TY&<
M).T;HPIB[CDU^\*(/41,@4M)[Q?<["@U!3<[BYOGX?%H)(S:,T85Q-QS:O:%
M$7N(F*/=5Z3M"I>*IBFXV2UJ"FYV%C</SB\%.;\5.>48J2"G(.<S0\[##E3;
M[@J;=OL8J61-["1KXH,NM2JB&25.Q/I*I_EB#C]U%:-$6.XY-458=E98'H?G
M)V?"J#UC5$',/:=F7QBQAX@YE-0)<6@+;G:3FH*;G<7-X_#D3 HC]HU1!3'W
MG)I]8<0>(N906A:(IBFXV4UJ"FYV%C>E '?_V%3P<L^IV1=&["%>"EIV)EU"
MBDQT+UWBKSK3A4HI6T+%<%525EBV^TIW%:-$6.XY-458=E98GH4G9Y*8W3=&
M%<3<<VKVA1%[B)A2:T+<V(*;':6FX&9G<?,TO+B0+KQ]8U1!S#VG9E\8L8>(
M*:5Y1-,4W.PH-04W.XN;IQ?BT>P;FPI>[CDU^\*(/<3+H9CEG<F8D (3W<N8
M>#-3V50'219,5%($5RJM=9!/ KP";H:+\&.9Q-3^/,^Z"ETB0^])S3%L/EVX
M;P:PJX(R3Y,XL!S6%7KOH92])W%[*(?_\S\N1L-1I]F=Q=/1L3"\8+-@<^]9
M5;!9L/E9,7Q72"?8+*PJV+QM;>G3TY,N\WKG@%GJ3PM""T(+0C\90A_N/I/E
M.>"S9+L(/@L^"S[?/6-&%.B^,WM72">X+*PJN+QU[Y>CW>?F[!,P[SQ_YX$K
MGM!;=I; ,QQ<G![W(8/G4UZI-,@7E*"330/]9:&S4I<= +NN[!R1RR*712YO
MFS%[%IX?[[[.V#Y)YCWD]ZZ03J!96%6@>=N"5KLOS[)/L"RA!L%GP6?!YZ=4
MG8?#W;=HW">,WD-^[PKI!)J%506:MU6=)=8@JK/@L^"SX',W\;D#!<'V":#W
MD-F[0CK!96%5P>4MET1R)_<J1><!2NST%/4?=%>\<]DV:5Y*IDW?9&M7J+F'
MDO.YR,6#47AY(DV?Y=2M8&<WJ2G8V5GL/!SNWM?3%3851[L 9[>H*<#96> \
M$(U3-$X!SHY24X"SL\#9E0J'PJI[3SK!3&'$9X&9Z.'LP G]KG"JZ)N"G=VB
MIF!G9['S[/QD]XD37>'3G2=%/$#=DIX"\@,;68@RM___6]S?NJQLE9(PR'35
M56 2";GGU!0)V5D)>3 2TT),"P'.;E)3@+.SP"FN['ZRJF#FGE.S+XS80\P\
M.!L*FXJR*<#926H*<'86.$79[">K"F;N.37[PH@]Q,P3T37[QJ4"EWM.S;XP
M8@_A\O#L7-BT*YD24CZB YD2[ZJ9+B1!0N2BR,5G+!</SL6.$)^U &<WJ2G
MV5G@%)]U/UE5,'//J=D71NPA9AZ<#.6\BFB;@IS=I*8@9V>1\U!*F3V.][H#
M["JXN>?4%-SL+&X>2RFSWK&IX.6>4[,OC-A#O#R\$+SL3)K$K@I*P/W[LRZ/
MFB/QOLBODC+)LV"2%T&21?E<!Y7ZHJ491]^$HS2Z>D16E497=DDNI&]WSWF]
M*Z036!96%5C>LVP.P6;!9L%F857!YF9)1L>[3QH17!9<%EP65A5<;I9D]P='
M]@F5)6U%X%G@6>#YZ9*MAR<77>;UWB"T)&0+0@M""T+?HR;)[I-MG@- [WW=
MDN>4D/-W705I7DJ"3;^%ZF@P0JB)\WJ<ZLZ)U?LBS7<=X-I[T[F'$O;@.!QV
MH /,K4O2&S$K=I! MEA"@M3WLX6&NS_A^CQ@6@(* M/[Q[6B67<+KP_.3P6P
M1:\6P.X[8(M>O=<X?=BU$$-?45K4:D'I_>-:4:N[!=<'H_#XK&MI.WV%;%&L
M!;)%L1:DOE]EL>%IM]F]-S#]E?0=^*!@PEO-9SB"O^\YI7_7995,;N[+5-><
M633.T_C5T@!O&Q!?BJ]ZF50PD.@.A/N@KW16MVO5."+1S)(LADM?G@Q.CX^_
M7QZ61[>SG9'M#E3:BB:?9CJ(=51H5>H@R8+"T"C()\%WP\$P@.>G6/#G6I7!
MHDA@9O#"(*YU4.6!@NOC.JKP@N9FO%<M%D7^!2ZO-%S^W6APX9Y4Z+).*QA9
M,"GR>5#!"&"(AX7.]+5*\>:\+@(<8J&B*KA.JAE=]":I;O#7-S, @VF.+QP=
MC4X"E<7!=T>#D7M!3IV<W,C" ,@9S9IITE048(I*4WSBI-15,+[!^5ZZA\#3
M83S!.,\_PU!+>HO^ BN&Y8]*'I7^DI0TD0@6-9_KHARLY2W9@,QL;_*R(LZ2
MG;A^)R99LQ,C(!;2:FE''G]E1V;-0_"&(^\&>.A,JSC*ZZQJ&IVUM@Y<,E<)
M#DEED:8QE':#G?A7%3J9C^NB1%$#H\AQK_&0UUV=^[W52K@Y!5R(<;RXU9/L
M2I?5',A0XL4ZF\'+<5OACZ_?!I%:J'&2)E6BRT$0_$9TJ@O8X&L?"3P)W^']
M93ZIKE6AJ5H90@BNRS_SXC-CR?L<+PU^T@@&^/K@ .M>C(Y>_?V?[W^BC\-7
M/]B=KV&"\'12UV  A'Z($"6H%^Z-#K56(7 X./))@L.I9DD1![_7\'IX)MP"
M>'9*[U,9:#S) FZ%F44ZN:*'JRJ:'=8+A[/>I/%QJ-<@X &(1G:G.>YQ)(OK
M A^&-Y0:QNL&X+"K"[LA$""]A3H?5:IY7_ZJBL^:9-#/O!4$4M>1:>[(9!##
M:0,Q2?ZC1C\)5T'5_QFVUGR>E%0$T3YK:1^NJBZ()U9?">GKO :DA"MA2Y8+
MV(0$5PF\0P%2%:!E**=5(2B(7G&[8E]J58"*ATO]$R!>FB\(SV5/W$ZKV*.5
M96:K/MB-<7S+QEC5-H:W:ANKNCHJ!W55)C%M&VL8K-E8=U849,?<P@5_!6.K
M #T!U^-U#%>!(5.H*KG2LF=NIY9J4VO3KCF[TZYIZ>CZ]QJUTZ4M<^I?HB+:
M5F1#ZU6%6D] X84] G^"M%K FYTD*O#IA:8=7Z$-':5UC"\)5 W:8UYT5@G\
M,4ZNT,'U)_C7#NP/8L8O+T>O)JG^<AC#S$ALOH01U_/L59R4BU3=O,1?5QR&
M@],DHU>;0VY'@\MS^,;PGAT&W7NHL_C5(B])O7Y)U(;%?S7.O^"<<1[.]?CE
ML5V)QF%LKF GJ?W+N#2[LF]&)VL7<.:.%YIA)UF:9#"D"NR0EZJN\E?M'X#Z
M_/5"336?-#Q4$Z#"2Y5>JYORU8L?ESFC[6K&E6YXI;7F%^C][<C2DI?X+@O[
M=$NY)N;B[\<H566)ZPFWFYOH7_A;%R^6M^OI&H)O1]K^R!155:#+J(H]H@O
MZR!GKP"@-Z(8V.VZ+*T[%'TR!5OV8%SD:9!?Z2*8).BG2>!K?@0)!./KF"1E
M!#_<@+8'FA(9&#_I2,_'<-_Q,"2S(O2]G[Y:YGRE\'I?D0N#5$^-)%R0XX-E
M#_E$C<02S>M6'RCHK%-R\/VBDB+X7Y6RP_Q-3O(<Y3)\1(6X(+)^BSS>P?36
M^VV>J=[X-EOC9C-^/O0#D',/I4M,"EB,P[>:&6UAY) KRR$V*F*X)/*Y)$@3
M9_D0 BQR' ,B ^S_#$TLHVJ>>7&8EM+X44WT^QQQ!M1+4!(9H ?H;HV3.,CR
MRHPV4,Y3X0W9PL[:R9Z*;W%O=O [\M6_Y=X>!\8:_"&$IU>RM]OAFE98(PPR
M$*3+;L63V]V*Q^V8"IB5=52Q@[ZQ+&\!$1+$61Z4=31K@B'B--P*G(G#/RUW
MKWGNC/VN;G?V"3" -B:6-@JJFI-/SX@DN(B"@.8>BI9E*D+),M$HG](P0$67
M?P(Q 4N=X5T!B"Y=AD:(:/HM4&F:7]/S8!_%206_QS:0SZY\' '*1*-T\@T8
MK%13L#9*W((339$N? >8)1H?HDJ,QP&'X+,'P2]&6E6S0NM@#I.?E:@EPUW_
M76<Z.#X*FV <2^N%ZWW4H@Y&85M^SV479XC[>L$:?7JSUX)P=TS^+?BP96K"
M? '@7&+ZR"3XF'P)?F6F^/D6IGAJV"" [BYRH$B<Y+@?*<!,NQAW'V[L:@8?
M4TVP@((,!15]HN):I(<22+!S'Z%E853;,H"?5:-?PM)LL5^# Y*;>5W"-^4/
M+[VEHB0Y,[J6&XI<+N1G,BX?)!K.&C@9+S],U0UHTGP)$V!X=#0X^MY>#X1/
MU:+4+TM,*8#9M-TW=-^+E1I;B"JDN]^\M ]85SR+7W@"[QN=?._[IZR_A1Q4
M/VZZ<3@X.AG>Y[Y[W',V.!V=/=&[8%Y'3S6O\\')Z/32^^_IYBAK)VLG:_>H
M:W=; <2+N]<_7"MW5U/"MTF2?Y+C-!</&Y_JRGD:H=W7: ?,C#_]^<7HA=!1
M>%!HMV>T>S;[]][.@JW(_+H,5/ ]F)["I;+#NT6[9[/#A0>%=CVDW;/9OR*A
M]YA+A78/L,//'F>'/V@'GGW& $Z?>UHF?N">,/O*Z.(?W<ME$]IU7'L3;+?'
M18Y&]ZHA),@N$"$0T1%*/RY$K"L<(S A,+$?M!.8>#I-XD0@0B!B_V@G$"&:
M1%<60&"BL[03F'@BF+A70P#!!\$'P8>.4/IQ\>%>;6X$'QXQ%$4'VE9C41'0
M9A)MB$5M%V:Z5_< N+_+?2X>M ? M^C4TD>DPWU$ND+-?6[KM):&/6P$<GH2
MCHYWW[*I*RS[U'M=L%.PL]>,V$/('!X="9M^HXB7?J,"G-WB2%$ZGU#I'(7'
MYP*B?9/U@IU[3LV^,&(/(5.43E$Z!3B[2DU1.O< 0<.+#O2F[PK']D74"W3N
M.37[PH@]1,Q[)67WDDD?J?G[]OD0=S^;^S!G<9]3/@3UN^YL@ML^B[2=5%3I
M!B#W)>M2J"E;7+9XKYE2J"E;7+9XKYE2J"E;7+9XKYE2J"E;7+9XKYE2J"E;
M7+9XKYFR[]3<S9%0O]DCO>5)SX@:ZM-CAX.+T^/O6P,R2[>'01-L %G(8=+.
M8%$O0["2)]#9/('1<7A^?B:<VC-.%<C<<VKVA1%[")DGDELEV?R"F]VDIN!F
M9W%S- R/3D?"J3WC5(',/:=F7QBQAY!Y(@='1=44W.PF-04W.XN;H_#\?FTI
MA%$[S*B"F'M.S;XP8@\1<W@L7/HHFN9#'QB5;(D=94N\G2]44LSA#\R96!3Y
M HAU$Z@L#O3O=;+ 7[H*6"(Y[TG-!^V^(++U08C;0^E[OGOI^\#]+H37!98%
MEO>25066FR6Y& U'G69WP6;!9L'F9\.J@LUV28Y/=U\04G!9<%EP65A5<-D+
M)'29T3N'RI+5(O L\"SP_&3P?#"Z..TRK_<&H7_H -MWA8:"T(+0@M!;+LGA
MQ>Z3OI\#0#]8NLX#%S<9[31=YWAP?G3>AW2=3WFETB"Z;UUXD<0BB442/V])
M/#H.+TXNN\SMG1/&>\CO72&=0+.PJD#S_M1@V2=8EC"#X+/@L^#S4]9Z.1F*
M'ZOG_-X5T@DT"ZL*-&^K.DN&CJC.@L^"SX+/G<3G47AR+$[GGK-[5T@GR"RL
M*LB\;6J[:,Y[E9CS '5TGC0/9Q_3;/Y:Y&6)U7#@ZPZ 55=HW ^YVA5J[J'4
M?"XR\?@H/+[8O;DBG+KWI!/(%$9\%I!Y*NW6Q+DNN-E-:@IN=A8W0=6\/-M]
M3HEPZMZ33B!3&/%90.:I6.:B:@IN=I.:@IN=Q<V#T_/=Q_JZPJ=2 460LUO4
M%.3L+'(>2H/?SN0_W%J89.TZ;Y<4(?D/S6*]6^A"57!9H+\L=%;J\N5]-L#^
M<_LC2SA8-/SISR]&+YZ.C-W YYWI#D+-#E-3MK@P9>>84J@I6URV>*^94J@I
M6URV>*^94J@I6URV>*^94J@I6URV>*^9LN_4W,V!4+\P^G"GE=J'@XO3XSY4
M:O^H4AB+RN( 1O%98S"EJP';_@'],XO)2N9 9S,'AL?A^<7NR_H*I^X]Z00R
MA1&?!62.Y"2II/<+;G:3FH*;G<7-X4EX<BRJ9M\X52!SSZG9%T;L(62.+H1+
M1=44W.PD-04W.XN;!V>G4K+D6Y%33I(*<@IR/C/D/#P5+GT4C7/W+>XE<>)!
M=L@'76I51#/*G8CUE4[SQ1Q^ZBI(B;3<<VJ*M.RLM#P/+SK0GD(8=>]))X@I
MC/@L$',H 4#Q: MN=I.:@IN=Q<WS\$B"@;UC5$',/:=F7QBQAX@Y/!8N%4U3
M<+.3U!3<["QNGE\(</:-304O]YR:?6'$'N*E!("ZDS$AI2:ZF#'Q5YWI0J64
M,*%BN"HI*RS??:6["E,B+_><FB(ONRLO1^'EB<C,OG&J0.:>4[,OC-A#R!Q)
MTH2XL@4WNTE-P<W.XB:HFN=#.0C8-TX5R-QS:O:%$7L(F:)JBJHIN-E1:@IN
M=A<WC\6EV3<V%;S<<VKVA1'[B)?"I%U)FI R$UU,FG@S4]E4!TD63%12!%<J
MK7603P*\ FZ&B_!CF<34"3W/NHI=(D3O2<TQ;#]=N&\&IXLJ*/,TB0/+85VA
M]QZ*V7L2MX>"^#__XV(T''6:W3FK[^A8&%ZP6;"Y]ZPJV"S8_*P8OBND$VP6
M5A5LWK;$].GI[D.E^P3,4H9:$%H06A#ZR1#Z</<1V>> SY+N(O@L^"SX?&=N
M%P6Z]\S>%=()+@NK"BYOK3<?[?[,S#X!\\XS>!Z@[,F3)NSL8S[.I[Q2:9 O
M*-TFFP;ZRT)GI2X[ %U=H;=(69&R(F6W7)+CD_#T^*S+W-XY.;N'_-X5T@DT
M"ZL*-&^Y)&?BEY+ @>"SX+/@<R?Q^?@X/!ONOAG./F'T'O)[5T@GT"RL*M L
MJK.HSH+/@L^"SWN-SY>B-_>=V;M".L%E857!Y6U=&EUF],ZA\LX3;AZ@9(XD
MW'QEL=ZY5)LT+R7-IF^"M2O4W$.Q^5R$XL%).#PY%TZ5 [2"G9VDIF!G9['S
M</=^GJYPJ3C9!3>[14W!S<[BYL$H/#L5[!2=4["SF]04[.PL=AZ>"I>*SBFX
MV4EJ"FYV%C</AN')Q:5PJNB<@IV=I*9@9V>Q\W3W1ZB[PJ4[SXIX@#(DTDCH
MP7?(6]SHNJQLQ9(PR'3558024;GGU!11V5E1>7 L3??$QA#@["8U!3@["YQ=
M:<,CK+KWI!/,%$9\%IAY,+S8_9F6KO"I:)N"G-VBIB!G9Y%3M,U^LJI@YIY3
MLR^,V$/,')[NOM>7L.G>DT[P4ACQ6>#EH1CGW4F;>(!B$I(V\>!;Y%TUTX7D
M3(B@%$'YC 7EP>A8$K/%C2W(V4UJ"G)V%CG%C=U/5A7,W'-J]H41>XB9!R?G
MDJ(KVJ8@9S>I*<C96>0\E/C?X_BS.\"N@IM[3DW!S<[BYNA8 H%]8U/!RSVG
M9E\8L8=X>7@BX:#.)$Y(O8DN)DZ\+_*KI$SR+)CD19!D43[70:6^:.GAT3>!
M*<VQ'I%5I3F6R^Z^V'V1IWUJC[6'S-X5T@DN"ZL*+N]9BH=@LV"S8+.PJF"S
MUU#V9/=-3 27!9<%EX55!9<]7T:7&;USJ"RY+ +/ L\"ST^7@3T\VWT&]G-
M:,G2%H06A!:$OC.WGYQWF=-[@\]=JF[RI#DY^YAR\W==!6E>2H)-OV7J:#!"
MJ(GS>ISJSDG5^R+-=QW@VGO3N8<"]N D/#LZZ3;K]T;,BADDD"V&D"#U/:LX
M=IO;>X/2$DX0E-X_KA7%NEMP?7 <GIUU+?[;5\@6Q5H@6Q1K0>K[*=9=BS'T
M%:5%L1:4WC^N%<6Z6W!]<'FR^RHVSP.P1:T6P!:U6G#Z?L7&NG:,OZ\H_97D
M'?B@8,);S6<X@K_O.:5_UV653&[NRU/7G%<TSM-XN1#.;0/B2_%5+Y,*!A+=
M@7 ?])7.ZG:E&D<DOS3/R>#T^/C[6^KSG.V,;'>@TE8T^3336,6GT*K$#T%A
M:!3DD^"[X> R@.>G6.[G6I7!HDA@9O#"0%55D8QKXK2@R@.U6!3Y%_BUTO#K
M=R>#H;L1'IK!P,9Y_AE&4P8JB['QDLJPBA#_^=UH<.&NAQ='JHIFA_7"CB:8
M%/D\J*[SH)H56A_>:%4$.(="115<!,]7:1E<)]4,KM!$B'_FQ>?@35+=!.]S
M8!,=_*07JJCF,.T R!O-@FM=:+Y9QSA*O'.2%&45_%[#E;K H8R.1J>AN<'2
MJ>1;\7&)2F&^^612ZBH8 UW@@7$=56;B=OSPH"4*G0Y&;L:%+NNT N*8><(X
M8,T.S;SPYKSVYNNF2;.#7]_ Z-0TQQ?"<$\&:_E;0( 9_DU>5L3=@@9?1X,(
MB(6T:J'":'#>0H48&+Q!!@2#K'D(P\B1CP9OLTE>P#[ /S_I:);!9*<WP<&+
MMY]>_$"O+.&%*6R4&)^&O)]D5[JDO5OB$W0V4UF$&P9_?/T6 &.AQDF:5(DN
MP^"[(P].X/*Y2G""<(NFQ],5)_X5A4[FX[HH"<Y@G^(6YLD3/"U=/=,JCO(Z
MXU]SOY7<(/B-*%@7@ /VR]9T$(L ^F#L93ZIKA4 "592(]CZY_N?+#QJ& !<
M3;HA/!"I2C!:@C+CGN @80E<E@@.S[9,W@4F"UKZ2YQ<H=KR)_C7#NP/VGE?
M7HY>35+]Y3!."DV(^A)&7,^S5W%2+E)U\Q)_75$#!Z>@S>&K3>+RT>#R'+XQ
M&\T.@^X]U%G\:I&7"3V<UBBYTJ!%?L$YXSR<0OGEL15$8P7X-0./[%]&4>T*
M2(Q.UR[@S*6,FV$G69ID,*0*Y.1+55?YJ_8/0'W^>J&FFK/'#]4$J/!2I=?J
MIGSUXL=ESF@;$+C2#:^TUOP"=?J.+"WI_G=9V*=;RC6&M+\?HU25):XGW&YN
MHG_A;UV\6-ZNIVL(OAUI^R- JUE2Q,OZ(V&ZRL"&31: T" -(IU<$8 O*[J>
MH$")@.R.! 4M,+)ZBY/%3LS$=8$/PQM*#6-Q Q!-\+:U^JA2S?;'KZKXK$D!
M_YDEMNB$Z\@T=V0RBDT0:U;S8K1]0$URBF'H:82H'P(_M[2R*)_/DY+JR-IG
M+;'^JKE#ZI&Q<>C;O ;-!RZ$35 N@.U)J4K@%6 =PKU9J9PAAMM0=L/MSI$2
MK&JP<G&E?P*,2?,%&<NR)6ZG5>S1RO*R-7_LOKBX95\L6TN@U_C*.[S5>@?L
MTT$HYU%"FX4VQT<UT>]SM'%8TBP;+(T]]_;3NNUV5PM+-M)MS/%7#<H1"&Q<
MBM<Q7)64 $:H#<E6NIU:JDVM39MI=/_-I'^OT6?F-A(;]ZU+5$2F/7GCM%[Q
M1.@)6.NP1^!/D&$+>+.33P4^O= $!!5ZXZ*TCO$E@:I!C0,C7U45;#+V?!1Z
M 0\*<O8[PF/1Q@7-3I>E]?CACBY8]P-9F*=!?@5*Y21!3T8"7_,C:*3&@S!)
MR@A^(/^H9H'X$RB;\S'<=SP,C3>S<5>V9+(5YDB%5$_-HC20(=O^5K\B .:4
M:/>+2HK@?U7*?M\W.3$3,@5\+!,P.HD!OL4CLX/I!0):+3=IH<GWF0$,N(6W
M7GJSW)&_W$&:./F)!B!Z'V+:MXL<GXK[&79M!CIMV80!8'^>N?VI8B0#P0N\
M;()<=F6Y;.-K\573#.8?.]5Y2='VM8<($(Q->-GLMS' ._+YON7N%P=&K/\0
MPM,KV2?M<$++/1X&&0B>9:OQY':K\;CMJ0?]H(XJ=GDT*L(:[X=QOYR0&(.-
M6M:@L3N7O!B%6RR@X?!/R_U=[L?8.Z3=0W/VN[K=_"; .,Z8>-IH=&I.$2*C
MRL%%%%LR]U"0)U,1PO!$(UBG88":(?\$8@'6.L.[ L!QC&DQ^!N1H=(TOZ;G
MP48"U1)^CVW8F5TU. (4#LI\13=@_$M-59*5N <GFIR'^ XP*#4^! 2:6BR
M1?#9@^ 7HU66R9=@#E.?E:A4PCW_76<Z.#X*&^\F[K,P:)-DX5H%)65+;[=Z
M]W&S[]&#PPIP>O.46_);BK=\RW[<BLG^EH XCM%@08*]40O<O\$'70)'11LV
M9!?%RBY\NTPBW'Z_U%G\Y$%^O+K;Z)4OC(I8!C,%UO98Z\S8EK##O7C^K,CK
MZ8P$-^SH2.O84U!+E9+^R88UPM"XLA8JR&=5%*@<LUL)F3A2Y8SO-N_'BW#?
MLV,IP)'!NS.,E*0!,SH^/W5; ;"$'N*>AJ\&J*-75#DR"CSSNTLO!$Z^!3;K
M2Q-\(?!$!\&QY[1&_(/O6N@&0\K:WX0$Z.I*):D'P:"/1ZC>WY!9L!2/'PV7
M1G.M@>@QYDDUWZ/F7RDVVG,V)C!,2MH]O<*F(;4SL>J25?E)C;D(.+)&B<=[
M&_5^/:X^VTWP&_)\FFC@?7+L?$G*BF-RZ[D+Q'N*FZ-<9H!Q7A3Y->6VP1J@
MWHEVX!)7-,P/DKBU W '7@,/P&A 19U,DB@Q'J2YACV'#[O.B\\\-!8!_##^
M3 HMO*HN6AZHDA6%*DA!TZXXIPR6(AB.C"BG3!5+@&JF4"4HX9%,C4Q/V0FW
M].K0Q&9*=H'!##"7AZ%@EA?5(>C=\T:YL&'-Q/C12+X'2 %TGJFBL4(-<7E/
M7C0NN4'P7_DU/*4(\05U&OLQT66ZC'&2H$[%(>ZP"'BLKH#\?VA?(VL6;N-J
MK=(&'D=K1$N2YH!IH!KA5#E5!_6RFI;@7DME,1:#6?,QH*?=O(YCRLV@&?I8
MA-=;/N7LI-NPBO'6C-R.LC6RN;H!/;*X"1#*"LYV-."?@]U% >BL@B\7\,Y,
MQXQN2*E8XV01R6!;WN KJ[R P;);U$864+OU@MK!%'92-6,NJY(YS902HG#3
MXH7E0CN(+%<CDWRG2R^E.];$+WWJ>:^"JS''RB: )>AUM6IU:&Y'2:(7E676
MG 0670673.J"S-VE: I=1(E;,)J)!C@H\[1NM'7TZP)I S1?\SE<A68L,3EO
M4UP%E99@PFK]N9448-;,Q_\&5GQB6Q9;%=H!X$1;;,-+/^6&D$1WNP4*E91Z
M[?N]IQMV6M8,\*?\.M-%.4L6[-K6I;./RBJ//L] 083?'1K&"1 )-[.U:'#'
MD8B&/THR]^N"/6I((>MP9UW![*'"."! E@ F:=H7-!T5 ]%+A"-%OG=VX:.B
MZOSO5B1(\IPDSSU8\MR9),])\MQ#)L_=T?W1;:4<\X)0LGOB (31S.54&ZF[
M9&9>DV+(QRA0WM+/I2ZN\-Q'#G)WJMJN,72!%37+YRE*WXQRA]!!3/=&]$!R
M8,6<G^UI7NB@<Z^.X&[X7!FIXD92%4E4+<GC0?#:B<Z416)!NG&6!]-:@:E<
M::>+PRC@M49$>U,ULK'1Z4#VUR5Y'4DZLG##K')UE1?-%6' ]@"\>M!9@29N
MK#9Q_L%I##MQ877=_3X#Y2PO\%PH^D!*9RZ1-ZOQCU XE#SG]@+RF"SM:<\>
M(!109=N((!UUC2'A*]O%IJRPYNG>@9%E0Q$-US)L_ 0TRB0SIL2F00)$P0B,
M?P'!PLM#8TNSY%P44"0 .))L4B@;0.,3/K"P^1S&$_$ T5I!V8YWQ6 !7QD+
MN6VP>#XFX[1S=K U%'D6+6,24<GE9W(ZS89%' 1O,V=GD#'?'(E!0O'#?1>)
MC_+D^<AN_*"X#:WC*BUJ6"0ZQM<X $C@>+\A8:>%FM-LX6MU,S<&*"'S1L]!
M"&_BE8EU&17)&(.<P C7#^!\NZ.@I\N[NX5A@5_74Q@3.E6/V6&#"56:4A-F
M>K,?D[,F[$*UTQWH?-IIDS01VOUOS/OOAL/V62YD)-Q.XW\;]EIQX+BLB[(Q
M1).RK*T'X/3D,CP]OPS*F2JTLQU]1<:H!L 4E*\1HQC&@7@!L<JZ(?BLJ)>'
M@?8_8<%WY[ZS>++6RVBSTH"(\$#0+%I/0CUJ ]W(NV ,Z'AS-HDW_F/?I;UQ
M^.[H;"N13JW9F@'L,>N5KQ<4^@<2-:EY+KC:, )UJ#Y_539'(J:43<@<Q!X)
M]N&_!C3 ]^#8YQP'L(J4?2VF\6'Z7\MS/QP=!3%84P&95NP2R6+C@0C -IL"
M_&"VW1ZH5'?"FKO8:QT'FI^:TS%\NGNFTHG-#2'<B36JSDEF@.>67*KVX9R-
M ,69810O&UN>'FM*6&$F=,R,HGU.#_5N;PX#V<QO>SI]NYPO/]5L34C+!>S-
MF+(DO6O(_=[F_/ZIX!\)P3\TFL%[U@Q$'6_)\K^#'4QIQL!8(XZ0C7-5$%:R
M#S(O3%ST"E%XL\9U@)R.T#XZ>H4/6T-[^G7XZ@?2!(RP )A?%8^>$&;Q9X0T
MNHO'VGM[;*(:*,%P>^._J J#&FW]_MZ)(O*LHXUQQ6(BT].\X@,9_E5H<8]O
MC+X_U]4LCTN;8E[$I#]0\KC) /+]V:FZ-HX/>%:-'G:*4(1!5A.5<0L[(#"3
M\F?#"BI2TI+5.=4;L!MC6"=3')\G6P/D8IR WJHK%ZENQW*4'0"\=DU(!U]H
MR 74:2(D_D*$1DJG+J""ILMJY(,-#9>.9%+2?8/"+.DF1HISS3!L; /4HRAH
M:2]$&X&*>$0UFB1-QE9+>6.#[X;#LQ1^0N@NB%"$P$8CPJ<AWSQYF/W!$IH>
M4?+>GD)&4MAGW[/3\.CL^#:5F@@>* R<377#;-\-3P:7(XQ+\\UL"VZLCA!Z
M&V4#UC"3^58C%7^9J_A6A !><\D$,.@9<!&;#VB&&_UQS;XU-6DJ8/$8U-95
MX1W"^$>>6@Q; 1/Z5J+:M\VH^[IJOY+][GNBA(V[7XQQ)]D[2]D[Y.C#@DM7
M><JGZ9>L8=K[Z])T&A.SI34T7AU#^M?30K-P)#G]C_GB]UH%?U'9YY:68KY?
MOLEJ*8. (&1Y= !'Y)Z#%[\#08I"=7AJD\X8<S9-+&$?EY6CRRX+V/"+O*1T
MNI7<M?MFGN'\"7!7R$E'0R-3BJJ5ZC; 66P@CG6YE$8H1[K R)@+G6#ND1=I
MH4-P)M(28AJ$"=>7G[%$3E*E@)UF-39$BRA#8+Y0)BK3/-?&W>AUUA'$@_(R
M'9KKR87K/,=NO(#Y9L%1++P'M2)X^S8,WE9Z'@Q?A\$''.LO;97)UAV#]?P?
M/K, \NF#.QCX"Z96#8\._X><0,HX;-&_DS3*(\H3MEIM(*H1 )MHOR[/4?(*
M]CNOX%SR"B2O8(=Y!7ONYGF#BOHOF&GY+.+16Y9*Q!S=I#3^33#A?F43[N=;
M3@$]M9K:<>\S:B.3'(]?D2EL"@SJD@.BH&_,YYA>:TU<+]_W;H>O@@/2)/*Z
MA&_*'UYZRT!%@?G-AA@&9G'^. %@2OSU$,0WJ((,_SR7X='1X.A[6U<9:)BJ
M1:E?EEA*%:SI5R]6VH7CB2]R/M^\M)>_6M,'G!]_=CP8CLZ_]R6 1302 3]N
MNA$LX//+>]PWO,\]QX/SX7T&>9^7C087ISV8V&V=Y"\6ZQK)<W7N#8WDUV[7
MKW67]WH)?',7@G;%=NM'6",=+AY6\]Q]3X('IN+C4FT'?1R ??&G/[\X>_'P
M]&O7LP?=>E%A(DX2;VHNT!$^O;<&LUU$;I,B\H2<?<O*;.HST)&U>;S](*"_
M9PLFH/^MH#\2T'\BT$=C1_!=X$+@0N!B.[@X$;CHK#I(#K95?3 "0DVB)]8'
MX;IOP:4G;!'VC6OU=UVQ@]&<:Z,$L -SSJ3E,>P*YN]S@\='!?U;L62'#07W
M7_D0.LJ&[L2&[A\!A6B/KD#=ZE#;0E?RX[1#4&+OUR_W7AJ5GXLQ&IR?'W_?
M&LW1 QU6>EJ5Z]V:$\9WWB"/VV"[;[MF6TI^<[/A3M#QOCV$O^L>%W9#\WK0
M[7\P#$_NX8<0-K4$_*%[;"I@N;=T%+#L,EA>AL>70^'2%YUTOHKM\.2VP]LU
MA7^Z!T0B#O>6CD]*,I&"6YH,HW!T>23<*2:#8&0'Z"@8V46,/ [/3RZ$.Q\8
M(R7>L/<VPR]-YQVQ&7HF#^^3Z"<2\['S)WLC4T]/SCO+W[?D4.Z]U!4D%B06
M)!8D]H/&IZ<[]@ ]4RS>0=3DZ0R>?;1G*&5]ABU$;:WVM7T_=XU<G2!\[P3K
M:#!"W(GS&DN7=$JT[FTFP?THW$<I>Q*.SG:<;G#K8O19S@HT"S1WC5,%FKL"
MS2?AT>5QA[F]6\C\L.EB\ %+P4F!R%N.<KQ>&UIY[CU WE'7>&R.7I;M;O?E
M^@/':]OOF1YQTRR9P$:ESN))-DEK+.5,MV.5Q"2+P,8NR2:<:15'U+>ARH.R
M7G#M9+C(=A+W+^86$M0<K\0N>ECX&AM\FE:A93#1U%QO3:,_>U/35'WL6FZ-
ML4<&33E/4TV-PP-%O2!2ZK"1Z>+IV[]UNWS[VK/H:QDBUKQ^=,5WPZ/!A:M;
M'F_;7X**9@-G4>NF6R\]\9HN44>8S ZT+F\9)'6>\!K+^>_+MIXJ/N72>XH_
M/S77V-4BR6/;N@J+Q"<E]9IJNEW&M>8&:Y9L]-"+P=#O>1=C*W0<G6TT%2D[
M.RRG;SK>XY49+"UR=V*JYG]WWK36XVX6[1>-O)YVV"%'%V4.[)\>VM99*HJ*
M6MVYW]1^%MF]IZ1I$G]%TFR2-.NZHMI6C]1M#=NOZ++5 +'5%35TW1(V]4IM
M=SUMM4K-3=L9A9Q/^Z#I#@,O7]^4]>E%0)<7<5UV.V,LM\PA,#GVP>3K,+\>
M$8L$0 ZQC7F&6]&N>?Z&5KJ&'6S+X"V9 AO8?G6"QYXLVV:"&R!_[00??$)/
MV*=G_R"[R;MZ2,C>5:^CA][KZ[+2; >4DO0C8-4(^U^;+GS89O6++J*$U0KN
M^)4O3.N]?#(IX9XQ-F^[86Y'3O9;=*WK_R?P^[4E::/3D:?J;06_IM4OH5/3
M+]MOM[;-.K76U[(%CZ?1C(E-\$X]7Z3YC;9= )L>@*G*!L$6LQS><98GH6D)
M/B%+K]63;FEF2VWG1G[;N0>;X_. Y2W[I27DW0,,)H\ KOO/IK^N*-!+"C3V
MV42'!C7[IM0.LL^:-E>@)%3<9I-\,C BMFC7]"\U?<B R>$7O3!VGET"T%3@
MB8N4,)_;4F4)=3S&-Q#?OP9] U;.="@ON+M$JX_K]H,U#4)M7[&Y^JQ=EV7L
MX%Z6]7S1-!C]=QU/^49JTJXF$^H#SRT?\Z+R.H;#8&RC<7J.QE9D7J]E[#5?
M5OQ8ZRZBSEUC,H]Q)]MQL.WL#05;1(+IDA?$P'AWD5#[,G(W40-9TV[5-).'
MI^HT@>&0 PI'J\#47FH &25%5,^QMUMDWJFQ:2RV0OWJ<(!-\VR:XPK"^!-L
M)H=>+^Y&RTX2[J,;)T"SPDGNTB-W=SM-2H>S5LS(/PS1V0YG%VL74#J<W68!
MW&5A>]KA[+FJ^"3EK4KDR6,/]0ML!U["1>-6RW",J>"5IJ'FKZY'.'XQ/']5
M!C\E9527I?4"O\Y4>@,R D7D+TXHO[&MO.F:#T9DP"4FE&8Z9@Y'KV[5W+RN
MFBBT7F<92J#5+IG_S[7,NM&J,*K[3SKBMO3'0^/?/\"'F)E9#E3!#!3Z/[^8
M5=6B?/GCC]?7UX-21X-I?O5C\N7_QGGTYQ]?@]8-K%7^J..I*GX$#43]" LZ
M/#X=GAV?X<>CR].CX3D80D<GYZ?'ES^6,(-#?.=P=#P<S*KY9L; ,W3K&(.X
M*]:@;A&]7M(:46]6TH(>"6B13)O)[+:MZ@:?VS:[Q&6X_%E>L2<7_U!U3,KF
M%EKN8@%\@ZQG..TK= CA,>A%(Q487_7QYS=XP:\*.,7RV^F&)MZHT9D.QF.M
M,Q@S]@,&I0\;W5+"*\T@W["'%S"5*+$ZG=O01@?+00?#[O1ISJ'6;68CAF3#
M41\TJD5@SKP%E1@HZ*'2^R+/X'/$/"-&I=>52>O@[[#S@E$8/)':?T]G[<>F
MY^+')M.@M<IF>W7)? FM]>S@#7=UG7D QS9RN 76W;']M%A.^VTY78KE))93
MYWI#!TG\YQ= N/F_CKNJ";R%T07' X3'%.0,4HA4+O@;),6WB(=''SJ.MC7
MAMK_^KV9#GZ&J9@_C-98PWIT>6ZP"C^9D:*G]_4XKRO4NS_K*OB0E)]%+VMH
M9<A2 %G0I6U;3Y.'&[\#+8A2-LFMC/[<9 ZCXAS*1G>P0.$2S.(K78"986T5
MT".:BSEK$AW_UNU<D#>8/,AS;SSZRX*6,$C\A 9VOJ.W  <W26OT.;O\A 3%
M+I@\_$QZ.MC]P'&8WV/."C8_8?(HW2OAWZ6NY$#U:_R_=9:G,1G]I=HZUS)L
M)3_B]:W'^&8I_K@>6<T7MV[RH&0ETP:)NFC@-J![\B^D?I&GY;\HXAOCI#HM
M]DX&Z,&C(7=:&!#;O'<TW9O,TL<W='_F8)_9(\UF<NNZ#>F>J=AD464=W\%,
ME2YV"A9VXRLOZP4>'G"N<.<-! BLDBA9M +9;V:)G@0_?]%130#W;C(!&5G0
MG?Q;XSXWOX6<#D5Q:4STPZ16\[2X6='(7]$&8((#A1GT()H9<3_4&(8?'A^J
MP^'I@6:?Z? T-G\UT_K9BM+74057T2MI'%EL/YIL=$H3Y.1Q\B1PV'P0_(5R
M]G/C7]".%</[$H*]I3!1X[K@>/TZY^J6M#'BKVJ(BQ++9.G[ 76,C!>4[D#O
MQ,F#7@&"A=?VFE(D;>(!B3WT# <YV-?U>)Y4&^@:$+4PE0)9B@96DO^F) <5
M,'1L<HU,(@+REA&;>+C$K$ 9E L=)9.D$:H??W[C0C5%G39JTKP,C9L<YE'6
MT:PUD033I:-Z7IM<?3K1,I_761+1%\;GU&R+T#B24#.X/WN#-IFF^;4],!/#
M9$K2]@H]504]W-'66U;,O/;T1-6H,==:?:9]8O084ADSU&^8$P)D64]?90+C
M>V*.:R$[:QA2:%+:"HT6-<7(X*..$Z;/*N]U-^'AN>/YW_,*MP_FPL16D4V0
M"+QQ5GFG"8P:5O"D09QCWBH@A\O!L;BP^IR9PIWD#";&&L1%Y$RWM9OS0#:U
M)O<Y-&J%4I?D4JSAG7/B3S>.+<)=+K&H!0'+CF$>H7<U@TX2(<;1L2!C4@83
ME11T7 ^W<T,(^!7@"2=4KYU1V,QX8LE :;Y+9PA594',DS[N[>L3T_XQ^#@(
M_OKZ]7M^FENV.4Q@<H,D-FC<C&M:)_P _[06OO -6C79S1[L\'VW8.^I[;YI
MC->W%O#?^(#?R)X/%O %(1OZ_39#I<7#%OPIP6Q'ET<)>V):D (*2$&YEBP,
MZ7#5!+8FXDJY*D6KEKMAR<NPO71>4F9;NA1JMJ#8DEX[^>$'WU_Q.\>VUJ:L
M$V"28FD!"[-8":-1$P.$8-7.Z((W09I\1B6ERE=O".\VG3V*N#_%F4=D$6"Z
MOR5S\OZ8+-2?E^V>99>$[-QE6W59*3?YUY16;!7SW%/,F]\;)LVM<NY$)J8D
M4V*TJK:UK\SILNWW]S6>HU]0CG6%=Z-B ^]$=4(7!>8^4YXR_#DI5!T/@M?N
MF>5-"8I-:+R9N-MG8%%<ZY1>&VF8-!LTK&%0E%QESMC+,]C%C<47TI35F [&
MZ7"= 9B/_\V,Z4SC]E (-^8:#6%-QZOM98GE]-3C=*,TM1]1TG1TRXGC:.V/
MW@YT>9S^(Q-,9;$^<9L1CNYUI"2P#!A0V4WHFYA&X?&2E'@]=,QY^J @H],]
MISOMK/TAJK3,T:8<*^/O19=(4"_P?+PN,";9SL8G!R^^F3 VF>5\UGU2X]'<
M@+C"F:\H2I $8Y(HR_/.;NSHB*7 T,4C-JPA@AEZ14E>(*M('8Z#:0Y#-48Z
MTFR1X\9"WC3O=LHJQC"0>]%4#9N98MAD#);\')=7Q6"L8HK]N%EX3^0USR+Q
M4A$E0:KR=4#S-&D46-)T;:Y77OB[BU+O4?-/,#E0;\]G=$KAL/%Y+&^A.;!*
M8R:8> _M/[))D%_HY7D4U8P@; DU["$J<D>E[*_6*/O-\Y"L*,OO1%G^*B5?
MK_,VE;2YF(BHIT9XA.>&MCEL[#%0U,*X^Y6.#=FHYE9"DKQV5@QQZ%3YSLI%
M7I:)K4U#:-@,U=_:UHFL.&*6&T&=S->["PA(S48W(AK=%H7;]71FR/KPS(FA
MMP1WF8G3.43#LU-EZ0_B#AXZYY8!>7&E6VX9SY^#KYGDZ%;DFQIR,U& 8Q.0
MG36J[R%/GH<VG:+7L6)T!Y:K:G+U/81S\39_H>PI1*=U*[F!]%5+ _'T+[1*
M4^NNQN]A.2C%T^X]OA;D+# NEPC)Z+PB:! 1)85B:G]@JE0%930#@8LN=%-<
MREJ57_>PC6MR\<.%$YH/<5YG9:/D=>Y=7N?QD>1U2E[G0^9U]D>8($0WL9QO
M<?Q'2XY_,23PA$SC^'V?JNRIU9AN%S?\S9SL2C+8A*0?6'_''/1T6V?,19(Y
MT+:BY?A^O$F-;N8XCVI4+1K/'J<,P*55 8]WW]NR>QPMS&$8>6%_M&I2V!4]
MB4HDH$,ATSR8!-]):B *&1P.'G[#8BJ+@NCEJ&CT0/;2#(+_RJ_!,"G"K_F'
MKC6;,V-TG:7DWV "?VU)V&%C/*#FXI1JRZ!SI>6^I >X^^A@'O <^4SL&4-O
MZ**([;<B-A1%3!2Q!SU@<]'?X[7O7W_X%+Q]2X?PA\-7P;M/__7SA^#MWW]Y
M]^'7UY_>OOO[#E)X*5&;RD/_RQ3DPMR6KE*0\K.'@^!O5,_Z?3/@;B=JB[.K
M=0*CE7AE0>26.AQO\OD\J9KL+?37P\_LUO2J9- I[.'Q+4>$'_R$,/JYX(Z\
M6% PBFRG JM,4PVK)",5$ZY!QNVDSW.7 N;Q.T8TQU"&ZE]X#N=?IIA8MP'N
M]2#XT&E$Z_8)T/)S\ LO\[,QS[^YXKH)ZK3*>B;959YBHH<*9K!D7K@>M]+_
MS][;=;EM'%O#?X47)^^RU^+,L14[=J(K67%RE,<^]K*<)^NYQ)#-(2(0H/$Q
M8^;7O[7KH[L: &<D>\8:V[A)9(D$@49U=7WLVOMR]?^:8=7MFZ$2OUK"?6\*
M<G^<4]J@I?AL4(=P*4"U#488X[ZY#HRRY5X9LY!+(CZ'U/4 W3'HY^WPOU8!
M8$J)-=T$)BD9@,\7NMW+S6 JPDA'NWW1AGF"W=4K@8+H+:?VFSP^WRN]F/\P
ML(Z^;!SMZRGZ>7T6^TS1F>*)-[SB5SER#R4*05H['!\W(CEOY]Q<)FIX.G7N
M.?3"M K(R01P<J)7+'^-X44!LC2MO:!3$QGIF>A]]34M8V.5"'W\T;MF?!!*
MDOQV 3\B TWDCN2?P^7J1:I_R$7P!44\TS?>U,UMC;<SI,H$?1<E!OG -I ;
M+0^I_UN<!)6C-)?WOH6TVO-P]-SXH\W';2!\D#SYJ2?..]KX.P4A12>(KT+
MYHI7'Z[(&< :;HJRXGJ/(=<]<].[EG=_\HG\U+,SQX[#4[9W'2&_W/+\5N.S
M)Y:5O.5!R,[('SF)<TQPW[9?=42; 8.=>4+=U6L0Z^*XPC;M_O([7?$L*785
M)D3K%U4)I)X4P_D>CJ[(Y.MG%+\]^_P/>1EX%+W-EGNY$OF<%^8"O]C]!6!-
MG'N3)4P/@&#QLS\\J37]Y/*S3Y]]_-GG?_KDS\_^^-DGGSW[] ]>DOM-"$>Z
MU2HND-9;>9WN6!@E%_Q3= >N\)I?ZJF8TZM==JBGSB?DT.2 5"BWH)YV$FR4
ME4PT (#CU-/29"RCI'"F3N;4$![%GTOQPBV'!-T ;NATMJ*4JO^[V/IBZS\3
M@UF?!'W7#D9;#C@BW2AW!E74+^DHT(E$JX38_61-_M;2")#>E.U8V(^'GG*%
MG!1%&CVGZN5T-LBHIV?4T:'%ZVC+=#OI$ZY7V^* ;:;?AVA$KY/Q3,0#&'BZ
M)J.W@5&7#2E9FU-H4T;Z98LM6^QQCA-E-QAJ,_HNS(BCL<[AK5+]=&NU;!%+
MD.:^GD&+H2Z&^@B&BA$X'O/AR7T(^O'X(/JTO2)C9/2)Q2JM2L9"KT;RX+YF
M4ANW#"*!Z2IJ)L]Y@IT&<F#PK)*R"XS.AL7J%ZM_)*O_(9;$9GD4V/D:A]Y8
M6CFJQ=XRXPTC(F'%5JJ3C8$H2.D;9!S.?@C*+^4&_"O,FQ.VY:9?+'VQ]$>P
M=!MN)(^<U*9 GD3F_!^-T8<K5-@Y%4BQ!VT#GMOGJ1QF3@KMP>E*]2W(+J44
M'?WU>L(Z*9+@?@C*$(.L Y=H]J<),CC%XR2ITI8LNV39)8\(/!83#3PA3I_@
MR%T!I\>BZY5$2()RF8AFMC*+EN+7)*XY U5=+'>QW(>T7!BD\KQYX+?)=#-(
M&P0.OKP)0U:\N2M;2L]6FK*NFB,'1Z^:>E=LZ3Q-:S_1U"I@**EN8+H\M'F9
M2F&MI:)]T1X>H'^];*1E(SW"1GJI(8WPJ4"<$Y%/S>,4&!UAW(E.1LATQX]K
M5:LL;Q3M@"%N7+(;#N I6BV6NECJ+U-;W VMD@S6H6]E$"<HA(-B\%T@3RXU
MQJ7$N-CK>R@Q<AJX.6VJ.%Y6A?JZWY_6(Z^I[+E=C\[I;#BBY4I#3,F@G?W"
M?*2Q6/9BV8\1,R1VJMFB=MBBX.*+VQ9S5PV$":OBEF*+7=.*+%ZD@DRMU1'6
M<+'CQ8X?P8XQ4P,L"PIM6N%+/4JT\T/H\[Z,LJ0K)$;+?2/GZQOT5A!75CS'
M33//[WQ'BBALQC.0VKF]L<P$__IF@I\M,\'+3/!;SP0OI]]R^OU<U6*A\2-#
M4;[;75%U0:7;Z+2Z'NINCXI_%5J=Z+##,O^6_&56,96O@'R_0%\,=#GUKI2O
M@E40ZB2A +6K\ '*2"O.T?$X3GX &YUKV6;<_PJ1XR.TY:$>T4'1@WAVSL?C
M5A,.5;XXTQA?8M!E%SY2#%H7O0M!8[-"&ARL5T.9%L:\N[(5SDXFU6<E)39[
MFUVJ046)K2L5,,K'+ 2]8V\M6V#9 N]U"WQ)?VP.Y68T[ IP=G-;T]90ZFL0
M6_?E)NE.6H>-,<]G\74S&.SP8RE32]QAB^S=#D;M=\T]\Z)+I6+9(N_QE&!-
M7+KLP"4+Q^)NVX"'Z!:[7.SR,49J<DT]IH_IU$;[;</A?X,'WJRZ4'<FR;$I
MR,L6<+/2T.L&5L?@%"*VGYD+^WJH4@0O00ZS+JT:"G"N+?P7[4SZJ,!:(TTA
M,PX>V_*F *VZ_E=C^8;J/<?I\2YLAI9C)NN_:.YR+MWA)LQ)VN8,#'$W=;8E
MPSH97K.!OUD5MS.C1588Y]$BQ5KAWFC/VRW&L2'L)*=V<<7"B "OAZSSN73G
M%T_P&)[@;VE;Z!:+;/<5$*_81V#D#"T?2=?[V.]9XJG%6G]I:WTM@DGL+K]I
MKXNZ_(^Z;14UZ5;/5A\HC]KK;UX^4[JT#]>KERUE&P :_H//M;!ZY8Z0US)#
MVL7OOOS'J]?V7?ZU_PE%14[_56T,L]^2A[=0#1]XL:%M4<>_@E:=7>Q_7GW[
MXD6\FF(?A9U'ME),98 0$'$?=R(9WXLQR5A&9%@"^A)M'#S,_46#46U-!Z,<
MH<I<-C8> DPTQS(&N)Q-RVY_%+S"Z2JT%T7?%QO0D!S ]E526*I:+*&_$,DQ
MP"!O. !L^/XE#MSM^,\J?);BT([\ $6<]BV1BJ&5I1\U(FO1\:#]R!?%KUVG
M '-V=P!6R14\'YB. U4Z7?<UK>7U*2F_2>#7)#TOGEZ7R!C9(4KMLJMO,9!5
MG8QC19=E6NN@=XE!>;DOYR]]W1VX#OB:/>UB?:H$6*+C?CML*"CE"6 6U*6M
MVY97D)Y3/G),IBLL6UWG<N(O/N QT'CU=<-R6 W#)R#,WO4_"9F19EOH.]=U
MV0];+L%OAS9RX<>=IN/ .NRH<V/*B3]KZ8]/[ODSWL=])--O_SK>56;OO3SS
MHW.G?<?\5M^E@@4PHW_G?LS[7)_?*GG:^[*%G\HR^K2YF1;#?!*&^1BP]7.H
M<S:\W"83"4:QJH<#!=J.$6!$,ILNF['W_5J#N_?[UI;(3@T6(YB5P(ZD9O_#
M4 I@#I8(EJ'8UWW^6\HM%O-[$N9G(VB<Y')CIA-NN5T"Z!3HPTS !XM9+F;Y
M:&;I6H2J.*SS\;NFZ8\M_=UB=8O5/9+517X_\G^"V(I$?]SM+I!=A$T)3\FP
MK@U=>:UE0&G"IT;!&KHV5;\'7;RB!RCX;%;7!>8F%RM>K/BQK5B-ESM63?WO
MH7;Z]/CW!%/AS[RDE[EKZ'<*[=$QMP*CW3L'=[>:.GUC3YDVR@-+)+!8\\.+
M#M4* RINR8.*+*FTB*[HO^BS7=(H3=W9!L6>Q1P7<WQH<XQ -I6+.(9>.I[<
MP4R=S2H4X-O>E\>5#< ]QV<6DUQ,\L%-,M;*8V$SJWOV^[89KC'(O6F;8.,*
M/(4#7>D4U<*KE@>S5_:S15ON=BQ^LJMT*KPM.R%]I[P,74C4KK2%'^GVTE2"
M]AJU'6]!1B'<Q12A7!7U&]1A\:-2PJ^"$"]LG "D4K?RAQ7"JC\)"2['1*_L
M"_4J/F<<-<\D7-+?ZG?NXSC&,"!W_3-VGGCBW-T-_9VJ?KX KK^XGJ$G0"E>
M -1",JI:Z/AJ6<N[9C6")#/&QK(--Z%JC@(IB;KI"&+I[0Q'T7]SJ5=TR"6;
MN25GN\##"(KFKIIAJQ :LO*63+@%&RJ&%=+L&#35C*9O>M].KIWV6T<I8_"U
MB\IM3 ]%8<B,0NX:A^,;\VXS3J7$_*@N9 K#$:$?13T>SV)P:F,LL<NOA<J^
MO4D]-5_#8_CUY0H2$XE18AT%)E: QXBXF6*Z?XX2Y*-J"BW4$;\^ZH@_+M01
M"W7$0\K)_W9.T&RFALD!!>+,V.O)J1KE<H(["9P8SY/4HGYO(Q_2^5I[D(DN
MMY4<Z&S=O-&Y63HA-@#:473 Z9]D@!)[ WBW3M$"_B-1'27(+44<])V-1:Y.
M8F"*91%D@L@55+2FP,K@QNV'SV$<7#)04"RU*8\<$\7.'O^R/.WEZOLYH(V_
MW-T1F@1GB2]>>+91;.1Z.(1;BW8C*DX:N2%2D:=77GN=2::7!'"MC/_OM$39
MN;7C'N3EZE^"_Z_*-PBTZ!X2*;Z ECLD$1W#)/'<IGG:Y:$DW1?B*52.0)Z/
MV3A!5QXB -FOGE6:XH :?0>#W7@9TXL#E0FFQ.:6K:OEO[#(]0#)X8[^#8O+
M/^]@4/?.+4SLY!)ZL/3] L$PORW&@^*16/+B4&PS%8SL1NG%O7B%10SU7AS*
M^?R&(M@^&H,NOTH#V""&K&,XNWHB3<9"F>DNA&1%A0)X[6E#+W[J'N+8>^!Q
MMR$RQ+KWTR.A(K.B=Z,YF6Q6LBKD"D-=1N("-58D5JZFBA3KNB6+FH(!7,XE
M!\XIG4!^TF>=)D%A)C\,19P<BMG9Y%AC"Z=_!40FAS/#*S-R_Y1@RS:Y^NB$
M=6^'JGM_AO@>,)]/6:'G5[*$OQBT?)&>?M\XU4CG?9:R2)W9#13*\YW"9ZEN
M-5B[_;'(*0WHFSPJ%G?0(?.5.%6:H8=Z?282E$F_+6C7I5?Q4&:/0S_E(DW2
MI-)^PX03XOEO:JAVL<(G8X7 $MP*.PI]]B+^YRY75BNNVZ!#ZL@EUXG I%.3
M'<%DKT[K.8PLVWK;=-T%D+8\4K#3U#;.D3:N'8"L;.8JRV98-L,C; 9<DR4=
MN'##4E!:M3E6S8GS]&ZS#]L!91[+S[CF@Z9L@_S3<]+E4PN+T2Y&^QA&6R)0
M-6UX,LIY/PIL&%).P>HH:=4@Y+ZXBBG.G^%:=*2*W&#-M2-0;Y0C8[.?_?W%
M^!?C?_BF4#+"67F',[2@]L]7P_8Z](MI+J;Y\*8Y:DUI,4'Z,NO1/&TJN8H@
MW^(M%Y-\?)/<ERU"W=;(*#- KT"#-+1EA:?%)!>3?)3H59(M#AZE82:])ZX(
M6U=;="7:DGM8.K]3!S>^4^(S=,:[/$UJR5S,6/SI8KR/,#&NO3N#<BO3KW2?
M5WWQ(P/"E]F;Q?(>PVW2?P':DKC*'#LT#Q:LND,!O%(D<Q'TE/49N@@)\C,*
M$ ?R9BVUKPJ@T65H9['E1[!E@[_%,978H7V089SW,(CC]$W<Q T7A[<-+1/_
MFX(I,TZ'ZAXJP7?"?7W\[#<#_,J0?9G\-[LP6OBCJ@X8$7'2&6/X$YK_F(<9
M06Q:&RMA(SF%HF4RU=5+!5^]W--GKYO5;='IB I>J/A1^D)JSYZ\XWWVT;,_
M\KNE/WQRN5K]3W-+_]BNX^6VY981:1R<)J@!QK7HZ__;W 3VV/IU)\T@G)7I
M*1+R^8Y;DB_9(V'Y_U_3OEG3PG01W[L5%$4;, J'74+K\NQ/?QB?*E8I[LH?
M5P>ZY7VWHHU!W_['4(?5'S]:\SWC/?SQXY_VY4]E]";3R]9ET@D<WJNN1YDM
M7SS1QH^+KRO> _\L[48C-RNNFALGOF5_3?Z!EA.+$ZHNW$*,0:K=98>5PE 1
M8T"=MM=<1)AA6R;@NO7J$(I:[+#H#;Q"&_C"<"PHUY/Y=LI%Y"^Y/H.547*-
M/=U/<]M%!"0E3.3AZ%H5PW+)D9 1<:RJUU7'Z)#U#X __0WYH2^"DK&+%65O
M>QO0*K\"^S3,:3W&IM.*TK=Q+ID]D!E9RP4O;!ZJ*ARSPNFNW+,9W$^OU;1G
ME-XFTWI7)B1"UVTM3=;+:?61CKL;,GF#AB:;!<:T2SSQ\9D<C']:RF1HE>"Z
M!3@?APJT==3ML970:KUDTOP61^UY\*Z.=<B^!\@=?);EIA28M]+@TR\#4\F0
M:DCNQ=_G']LA+F8W8ON(L0ST'S%JGOV<@M 01[4-' !.;7XW9_7$$F[6WH_X
MP;37?Q8L<YD@7"8(LPG"3Y8)PF6"\"$G"']#QS=">V0"7J5EJ/58=40',LB4
M)JXL(!3OGZ(]]N^4^7'TUE @APD29"H;C(@ESR^'C\8),N5S7>*PD5F?=YVC
M>(]OY#U, 5C,1<& 5@IXGL)FW3@M\S#%>%93&$(A [W0FR")!R*,^8RAB'G3
M>A+"2Z0CDW\2B,AX81MVE804Y3A,LI-^H$2J<D$UO>ON%Z/=?LI##8\XOX9/
M/UT/E,\ZP"K:\B )F4FN:RKN;3H.F26.E=6_+-.%MSE:76RFYANNB\W)@[=R
M&?9MPV;-51(& V.#QQDY.C0H@N]<@3FQ; #;U>SZ6WX,.E*0,EZNOK.GN^LI
M1M_BE8A;>CO=N=D&UP')JT!OG1-G&3V%*F20P'KRE;*3\<\,T\8U]+CMG:3.
M3N9(M/"HDEW7S45%/EM%N_C'+EGE802+'BUO?SIJL4]&N'A5R$+D!NB;7'6B
M]YE5>0ZL0;G3^5I=4%/]TM(#>9U0T,?BN$O+$D"LRA.3QW1O',(&Y4+4RA?9
M^@W/Q.@U6-.24K8?!LZE*"N"]"2+)IDC7/MA1FFMREPOCT^BA'KLYR?R&61P
MXF>W6Q8Y@IG*Q(R'S9:"_SME4)(^R\54.'TL<N9*,)2ZT::TXQY%&W'0:1&^
MYPI/(<LXUXBFIVYT]J[LW:P=SG:1[R4/4FZK4\IUL]LP&BI+S"E&D&-&%TE,
MG&78VFP_97!B=QZ.-E#<. 78<C;\'-$6--/^9G1PFG06^'L*'BW,1>LY._:+
M0&\X:I'^?"__+N?<T_;Q_W*OXDQH,@E)BC.C%O2:6%XVR/Z5W5NL7N^;_O61
M%B/<%<GT4K'L>!N#NTCB$=2 X#OC73JX10<_6/$/=D-[$TZ*[?5S'72"7*F
M[<DFFK>XC8X=#?9 65-B65EC1MH<_#=1&\W-L/;-=> P>T/OCD^=X2@<33?<
M%]):,;Q,TX:G6RU9[/XNNV+WE5MNQ]Q@-827]ZB\555*OKH^'"5",E'+2#AA
M1XK43V_H&%[]BXWVH!#T_ 0.E;:&I(U 5RC;LX--NZ:JA ],Q_/*U%XO>+>N
M^2@$.\:&_*6HB)WFRI2Z2;B[Q'*YXEIO],0T,CTGV[GRPU@4&#:M<IKLW9T(
MS84LD@OJL&')G+*UG_<]&A^%>FL1AA6"Y?'8S_=[/I^T .N93O (F)&-8P5S
MK!7J1?+G:;B]6G;Q>;?JW?S'W#_S0_7[=.J<=:?668J187\;5+LQ?X7>Y?+Q
M&,]$,R[]<??YT0,\+?^S.*"Y\HYX!S$ F*/(?G(#$>! 0UWG;%'VYMEI:62;
MQT!W-?=RQAKM$@VI*8.@NP03LSA",J9_2]T<H7^, KGI80=PBN[*^J:!0#$>
MX=./_A#WK9W\/'O#PJ#I^-<1!PH2)7'AC$63O[PS2#[KIL%978F/C:6.0]%O
M]ED+UX5_[[N.\80K5O]2ZB$Y$%#FTXRCBBVO"$JQ@X,B[C)($SK"L">)2A*L
M?-^KOU21WG.DM2^VT&FCG+MJA ?^OSZY_-.*+ES!^;T=UD*ZEOE5_GSY;'(5
ME"CT^W^E1)U+2W_\6,$>? W^;GYQI>!";YN;V(=!Q#&W <U:#M3^Z^.//K_\
ML_T<XKBD:6Y '@H-.3DPPBT78<6-$FJ.5O)84Q+J21F"(ZI.QAS:/#U7_JBW
MW8)\MR@$2'G?-:1'/>Z\ )R?%//UBK-<>&6._[#JG?T:=_M9*7I#J]TF%C2K
M]&BG6N]X1&+'#?LMQUA]H4BYN[C[*';_10A1/EI0H+]]%.B>CNG@-A#";>P!
M]F)2,$C%!F,@3]MZ:SR,"@<%35"D=<>65L3H,@>RV.Z#V^XLYV>:\"PRVLF,
M,26Q1^2DYV^%%5YL>;'E![?E<U2UJS:)FV>NUUOZB%*5^X4U64 (K1&BL X!
M8^/[4"BWRH2)=;'LQ;(?05XXTQ.6>@]L![&"E\= N&!TJ%X39D:4^*LOO_SK
MZ_7JJZ]>KBD0OUV]H?^I\=GOX_4VZS&H_Z/UW*7^UK04YI2;U5?X$K[SCZ(>
M<&_TE6<17SOZUNMB%[YM<##PSAFNZ8WQ ,*RA98M] @<_)(MCD*1:4QCVT<8
M6!9+7"SQD88&9SCS;>[@[E&ZQ\(2/Z%"Z0+?__7!]S]=X/L+?/_=X?N_VU;(
M][.:(S)<:WW;-.3JQ^6TVE_F\@>7JSF1B7D47]$#LLG4_7$"C=/CW:X+O<$/
M#,&8^@&Q4;!^1^6%. &O;=M]T1["=GW']."91D;$GU4-("B,!_S.QN>U@BKS
M\R:B@ML1(.8VV&INPX'OS^0@C?11)"P4'H+_X&NDMY"#Y7DE)DUP>9I0;YJ!
M@6]#C5G##MW4Z83A.D$P6=V04SL>;>7ZA(X-IP[&4$N>9G,=D1DSV4S%P.=I
M]X;MP[?$U8RV#7V:F^8\!,*"(&[H8Z8+E \'>C&KN]_NKZ$]_+2;\_*FN97@
M$;B;@J7;>59WT&P[JJNP3:N29.H5IK'7;&#=H/SRKX(#XR*"_413&U2:]RE(
MAED>"1ZEJM91N 5(I;L]Q'I.F,5@SLR*\!#@W-_2B?$OILM51;&)RJIO?HX4
M5]_6**8CUV<,3GAV&9G8'1NYH7CMS9XL(8#<="R!:OIC7IHHRKAB_,Q)6/DJ
M[0'0O3#ROF.95RTPR1_M%_)262J-Y4K?Y'I'8PQE6@<;N$@XXY"VB0Q%C%<V
M4U5BS-)54>')NC09KDM!ZP1XLOL]%"7H.7#6X3FN>MLG]77G88SB,_$>LN;B
M> (PWAA0$,5-T\9 H2W*;NZM*L)?O7[9=0/?.@HDZ<;(_.@D[DMX ;Y)57[B
M4RQ7E>J;S9L]^<D0YQ 1= !%ZWI+VU)>=]*#AG'H[Z5KX[YQ1\$K1'' #+X<
M'H )M1W>Q[:\*:L EEVR]6"PU'[?"!&"W50<K#L<FEKN5[@\\M6/8RQX?WQ+
M(3^[HO+@35-)Z-&WI3"J 8=.E^D[:48H?%8@;>)8\3:XTX OR+.Z,<X<S) T
M"H%TZX-753JIYG(O*G5S$QX&@I\>((5LY>/08HFCZ63:8GY3)V(B5]P5A;_S
MN&(I2CNSBPN,S<:T]3L8JGUMP$_N](29CW+C$Y'!\+9,EVSGKA_U-)OV)#\A
M0&Z>41(G4O83'@SO<KWSC.ND$96NXMV^48WE:JR>)3*A%CUEE]?H:DS6 #1R
MYK?/G^J(=Q.X.R-X4& ,_%+89GY_4-5N"D77*HM]56S>\+$?0 -2<R+!LHNM
M8>&=KV8?GLSS9XNZ_>3 X;<51;Y5R$"IT9MN]5UJ@&)VZEM1AWPMZI!?Z$HO
MN,S?FH7\Q#Q#QNN$4DX4;)E/Q[(W:X=K5APAZ3)C*?O<OE8*I@]?MXSU%N,G
M->,DF[%(F4PVR*1KI#1PXR;9>,R2'.3EI$9Q\BX/P!&1W'$,8-D#,[R;PA^*
M3G1N>\2N636 .ERCX%)+)J&3)B4FARG*TEC H3:5D;,"XI],@/Y>OL@JI?]&
MU"B!C9X__ZR90>IUCW(-"QD7JPKA>:LZR1PM,U UGF Y4G9'AQ7W4N+]H-9"
M;V=RWPK2 P&3#5G0Z^N'%+!<T5D6;K(Y;-D#26QYW",47*\/"U3Q>:KO3*<S
M1[0SJY/"O'33[HGNPU+QK&T:&M-;/*< ;,H^%,SAV"VM[-12-(/UW12'X\"%
M*8J2.2C$/V.;-_+E-^$T3KW8+MJB[A 1R>I*XZ*;O;6H$>LX ;Y6ACO\>P]"
MP'[,@VC1-+2(1?M"X0T6E2,B9+;W;632,J48B@NN6T!VF@Q/C2\VG(D Z%WI
MJMX@XHE$:5UQT#2+4@)'3F#N;%YX,1NF<6QE_TTW,"/J$>,K(4/;,:^]3-M0
M5+9W3C8EQ4?>"3DH;RW?%^WX7-%,?QSAK\1K^HSG %$+/'KI=S_,P615=]Y]
M3O4F,5KH"9\!3W,%5/::?')8.0=NX+3ZOAT.QZR+WM1Q?.ROT<?B$G]/OO5+
M;7EL3NP>]#3Z!G_+>^)K%N:.PY5?L+M9?:!T&G_]YN]?*I?&AVNA2H^3=.*9
M4&JB5]O$,K[SZ^2'SOI\BW3,72WTZ\MN?.C=F$X?[2V--B4&O8\ZB-HY8EDU
MS6+H]TVK8&\;+ Z+I2Z6^I@":;L29:=,:9B+CW(H+,:W&-]#&]^AV+3-A47-
MD@I'EG^US =B^>?"Y2_+]!]1 SJX&8FQU,TO.VK948_HSH-RHS5,+,,C .!?
M05 .O:O%^!;C>SSCT\(8V8LCG^2Z,]/5;T[3P7MCV$G!\7SY!!EI5=RN0LUU
MJ -7,,_FM#8_KW=4]J>S,D4+'/K7!X?^TP*'7N#0;PV'7LZWY7Q[F/.-#B"N
MVU@#".F$3D%?%ZW6%\L;/NA:H<HLJRH7S/G9 EZ_J<8J1)<VTL21^K!38T*[
M\;K!H@J)+V6!81NBXM.X"YATBAV!#X<6!Z#%/3%MWIN=LB8Z)IZ?C:@9@?4C
MJ.;W */YB2")EZX0Q3U&5\?'EN,^-VAAKXR9\<>UHOY+2"QQ3$GW@TMV U2$
M?W$\PU/7NU >'5Y2X^ $B'%NI4OV?0?L3$1%@GTTL)UB-^NL>A@)3LD7 KX6
MT,\5Y"(&T?F=G10) 9<JDLS70Z6E<8_C5$]P,-;@K!^USB8D%)<J<,3=&',Q
M\V@^@_CGY>M+PSRLZ1494'\,U:#_N&JVC&J6*:/9)T !B*M6# )F(F0P&(W<
M!9\E;</C-DV;!E2"8X A1].T)J6E9:9(#WN*TG;G;B1V&1SGMX(/I8HE;JX*
MA;3VJZ(\B"ELBT-Q;6"0#!V$5:\+G:JQKG?D3[!%3VTX\YD;8Y'?,":<[(F+
M?/I#V55]:0Y%0@BBY12;SO-O&X\:.><OWH<[_YUZF+_/K']#B54=<:^ #)'U
M E%*R\CL])&W5&#$L8[J"5)Y6_3T"BC:6A4MBR>P&0O_<10#+36"4 B3LP=%
M^'?6+';BH.?W?#>E%EOKF,=FGWU.F?<\;*D-FU"*C$87]&?7PF \BCR2W(8S
M[H0J$7C8R*L-\O_-T.OV.5VNSB^_NB1Q-.PS,U_ :Q[9M=D3;=?QG=D( )?0
MHY]M30J#>;897$XOLXYP <ABR!L5.MVD?-N(.@7[B%N,2^1G=J0DY%.=<>&,
M+#]!CB+>O_-_:DS10 229&AT]4_\QF8<X,CWJM=U^'?OL[/P<J/\XEL.5;OF
M<O77(2J)U(4,T(RP;5RN,L&3BZ*[*"YT--(,5%@:>7TV@(@)'LW!\GFBT$PW
M>R!'R81;('NMK*F,!6 E&#>M(S.#])L1"*5#FI>K+T'Z7?),P%9_\8ZE]C<A
MZK)IN%../\K!FTW)-V?8,?^[GHW3;=FT/T8#<.(0)U.B3%7>J$ ";RD9* &I
MJ;^L;J3U+"&YAI<(<?K]R>A,QQ:J[2D,;ZA81S:8>17FEY;=B1*P<GLJXVUV
MY.0L7F/[6U\VICIS#O+$5VY<J!A[D"8 >:.GQ4V^G),NT4FE!=ZIM !M=9)H
M@T,XC-!XEYDDQ"LRLVY3'(/;>=MI6+_E\3_QZQ+BR ;N3T>9.AMO+A8 [GEF
MFZ\7Y[K&)/@I0MV<-K#[0_&&8__)<%0C<^VBPHK0"><].,F;7*+$J]B(8-Z1
M8TC5% *0- W^);DAC73WY7$4!*1'RR8M%;Y:<G_@JMP:+&P3PT<&2&^9& !3
M1AT@Q<46-2F65KXI17<:A4.9T=;1[10B0W()!V4:RM\"$FQ$>6-P6APTH].Y
MIU\TN#X\#<Z"3*E 8:OQ4+$!^\O5:XZF!7HT<I4NH+ 9Q]SE!B>6JS-6P&5G
MM,<^"6#!X'>M8;R_G?L>JAASLW2[H>5W3T%-Z%L-ZD9X<B$+'0G:V\0?WLDR
MG#$9J7'F'6.S-%.,0U&'![B(VUZ'.#HSVAQ=4#6B&1GL,[#_D=<979#C#_Q=
M)LX4/9-7GRGJ>D 4D8GC:1"<QD-HM0*@YQ&#SO5H=0D\PF P7ID3%'M3'Y%@
M-2_IXU\,)89T^5O?Z93B=Q1I(/C<HD#:C9]FEO'D<O6UD]B9?TZ1 !HF8'O&
MW42]\PQ7+UID2 #:DJO#](0\61-#+.4KGPR*7(6U'7F],II8B!87I\C.L935
MX3]S.36GU7?/RUHKV6]]DL&:S;Y!MB4<ZND-CI[R?YI;2%JM53XH.[32%82[
MII:31\<0\LM-VN&Q"4X_L[%I>^1M*3"7>?7)J9KRV/C[\;?//XH>@>XKLW>9
M^;6H*L*'3<$C;)BOVI1'G:EEPI<;GJ=BS<'?6C3[VQ':&3GB^;-.)2$C.]"9
M42HW&VF";SH5Y.=H\KE)+BI1QG83*A_9YB4 T;;H*,+E*/LXJ"<H#OB+$<+D
MN1_$Y+H,\G6I JBW:RAH_WY?UF\D^1_!6LCPK^CSM$[=<V%^XB <*L_N(I$>
M/$TGO-.TYO/5=6A2:N#HF7T5EF&7$6<96?"?CWV\A=W>+SYW2EA=/]7/H-@3
MSBLA+//WFCNU*W@DB"85(A<[U/ "^F"FD!0/"!$22\-A>!TC?ND-DOT6JWZ%
M/-ES+\C=MJX2P0Z0OEX5FS=:L,:770M7&+IZG6VY'NK53=E4? 1)HE8*GP4X
M&TYKNOV4F.<7H:?,1,7C<!Y^MFJ&K8IK\IP<4Y"@U*WWE9D:KF:&=,\48D[B
MH'.6NZ%B<""_VI1=6 2Q.VO'5Z=T.IQ[IWA!DD5E!^?(T[M)ST@EH(U=H2RY
M/(L"65!9OPI4UF<+*FM!9;T[2>4">3!>B%1-&Y6?UW.M$:FIG>&:2WZ_.B4E
M4?V%>1JYI8,Y^SZB0JDP3W5&<R#1&I]C3$(5CT/)V"<9E<0F7.;MD)]&P8M-
M<9079[14XX/>'>W?SOWB>A6T'T/O>I;F0)I_7%YF)>7"4 <4?(2;HAJRD</4
M>JT*5I#D_!-BF;GFLL:$8'2(*7)<)=A<T5JH<?:1F+XA9P?H+-1-7%?=1($,
M^V&M73K)NNEMGJR@,Z.\$SMZUDWA+!TA<"%BLT6?-?XX,96R2>#/\C67/>(+
MG)X7BZ++9Q]]_#&_[;]IV_T+RB^* :_S%7,FEM?Y$/D'^+!VC__VQ2L;_%Z]
M;)GXJEK] P],Z_^JC@B@U6NCD/UK>5,R-X._S,M_O'H=K\-D=I*VX._IJQI_
M?XOI1KC.%1AYT12-?4Q.3)WHDC5/9#9L8W?V;[VSTMW9!^D>[!8NY8<U(^-[
M*3L9KCQ)I8KK9&1GO?9FT/(KT$39AHI91#B5/@=+&N6KGJN%Q0YMK:KRC:3?
M_VO<=ECC?&%?<J@IW=!7],?KEANU+R@4._"?_D86$5K*G^B'7L'8F5A-7LJI
MZ\,A)HGQ5U[1W>"3JR\XT?DN@,4$NU&^P! J6PXHTJ-JM@W:O91>!2\,K:*\
MAPT(6_3A3&Z0LUO&H+'Q??&*^2:EP+LSI>V-9E*Q (B[\$50R3/-J48N28%D
MX$WAIYG,A/6ZZ?[XU1J4HE]1GK,%RNV5"H'SN^KR3\%B$J>D&"#=*%YJZD"1
MXTF_FF2QA7]8>0] J4<>V#^ ]7X=C</BKG*&5X&V<*%83BLF/TW->7$/:_>Z
MUL9])[/X4I,VE8GXUWQAS>7%"O_WU>OO+S[_Z*.+3_^8 $O<7&3;*#3_98._
M"EK$ +M-)>0;L!HV)8$_HI2V^F$@DY8B""16UVR,P[;L72=0[X>/>K*NU]^\
M?+;Z_G0,JV?ZT=LB4UHWHG14QWNN^%N?5.?"#4OK:6\O5W]+.$2CAYSYK38(
MC6/K39GWBJ%V9'?$!:)/_L^K;U^\T!!U3,:H!854LT-0(-1H7#DF^U=$QKAR
MEL<<91V!,Q(?+.>ZWRA3- TL50J7NE5B[*EGN=%&<6A(QV[$P#*X?[4=8B3H
MDQSUZ"/!6Y!TZEF()V/S*0^*Z2U<KXN;.P;Q$?,,]T2)B8N3#C%0HJ6*I8!W
M>!>65X.ACSG.'6I:\&VY&;.JSQ.7S;.H<D(F3GQ3-5Q0EJ7@K2#PAKF\X5W%
M !)IIYT'0A@_ZE+J_=TV[1LE;RT$.>"!F(8OXEO\=J MTZR^*S>-#$CH8A7"
M\BK^I^3AC*+B8J9M\L.:6W<"\' @,3Z.*423XCT'(A7_.P;X=P*-/C:= V7Q
M< <\6VQ(P04:^@G .[8S160PJ;+5N_,J+58.G[3YCY],$N#)?=^>(^!\N=ZS
M'M"M[R@RZM'U[&]!*?C/-V ODP#PNX&V6:&D=?SYK\OMEHSM2WJ4]?UU_UFB
MP!C!75?-5:1E.+T5&T,[5HJ(?'J.D '4OJA([.%\4<_H\40]U^.O&FN%K+H]
MV.X8%(ZS]OJD97O=Q'@%W!L(1=LE5FL'+U0G0I])S!(.1\5A.-WP&X1CO,?)
MQ.H&1K*54'+H!@3<JN\W\7=LZI*R2Y\60*Z54(2?4N!(IEF(3L6Y'L&Y'L]4
MR]B-."^XF[<'U4T66)-3UTPSONGYG,HJ AL;0BLV_?LMG#WM-K"GF_1 %\'_
M<?AKW;5::?&C&_9#.+Z4Y1U_!G8YTDZ;;!69+6'X@6%,QF]]%YEG[G[=2?HE
M?QS:W;A,Q6#N>"2,) ,<K?E:SJNU S6>N?77#9_C0PVWN98,F+'3UP5H5<F1
M;D2% G3LL;4X^9ARH5ZU0R^?&JGM,+<L?>X$%SKB.-]Q4YJ%2?D0?=G4US@V
MF!>S;(:N.MDYK>655S4G-/0T?]?<2#/OG"?P?VCQ %Q-E1C&%%EM*(R9('S[
M4TDA_(OL,G,8@X]L32GR$20"_+R4-V#6_X]"'QXDD*RK]0^GA:/",AB.9"QE
M0,.X&B3$Y34H$V S\ES@(5%8C2C-N3M;1WY5M"X'S?%=*(2C4A-*RB[++O+G
MGNA+=&@=<.3BT[A9"#.76P'3H)0:"?O%!QN*-S[[MV(AZ0W%NAP KF03[^9(
M4XP@R><+VB?@W0>R;$/K\"V]^-6+3:_IZ\>Q7/;BNV]?Q)(=XD<)F<[14H(B
M4F+>$3^Q_BYN=8ZZ<BT5;9MSRY\ML>G[)TO5M,2PGW+2F9/ *TBD"-VR;,VD
M9*8)O>OJ)-"$^%^:Y@)9  !4I1$IOR>^F5/BYTWPA[%O2^2?>%"'8YQAQ^5D
M97P!+E$) -S+$&QCJ\F!QH5NG/*/;5;'C\6Y#+62[=41Z"[G?4YYRS(F?59_
M( AO']/MR#A[475!]> 0?0XU!=*0]@BMY.:C#T1 2K]'H$JI2"^0BK5\6(H\
MHY^(E9^D9R77YPKJI@<LDGYYIVI!* =@WB<41PRTV"_<5>+)>VD"N/%Z%S(P
M*E;32O"_'=>%9B\\P9]H38#S:#CJ^"-+3)>7A,:6PZ^<NS[B&BFY;^H+>^VE
ME?W9D^ (#3P^Y<PB&0*J "!)D<--@:=B1QQG(&/%M4;&VJTG(1K2MKKF[!!5
M"5J-$G*$QZHY602BSI0)T<S Z):ZWA1E$@'$D\69+MBH7Q\VZO,%&[5@HQX2
M&_5;.EUX/(\%\[S[1G%/8=F]T@0="U4\*1( 5R*5#:<E-H A$W>H"B.)NZ4\
M-SCG/^/S4V, 2A0NQN%S;E(C:)S0!H4,74.WS2GO-/P9GUJK#^0DM8;'A_?'
M2.Z DX*#'&P\W)M&%"DU>KO#;01IIV#HRF5U9?WOH>5%A=8M_J8J=^%R]45#
M@=-<$)!JQG>$A@^_-+DN;\3ZTSGGX?YKE_/8\Z"LCNAD$U671Z0.[BME0F9Q
M+N4@SP8[*-NMJ/0(WS O8DX@I3B[LP'J.R22>6LN^W&1)RP[SH*YHZK+ER*H
M6^FWJ3@/JNGC-QI3A#@[Q+!M>YM36DU7S1[5L;)V4['ZQU ';EM;3>7J-"K%
MX&J^'L/CM8)_(5\V:+L0*QS#2XT80S>2]BYL*^AOE=-'5>A)QE0Z60[9_4UK
M_SACWW7ZT!E354(" 6SDZ8U[5Q& E@K^7.(1]@;NRK52);"XUTH9,R^%;H;-
MS@V7YD\ZLOK'LM<E=[^+@^L,-TCNV6 B72EZG=R[RP8_Q0E-+2!_I4LN_.#0
MX-258Q%/*?93Y%=VTVAA[ABVPJ/H3/'FC\ESI[X#3?LOU7748]\ EUETJED-
M*)GRK;!C3%> F\V_F3L/.>[7V6'O>L?1LIJA9^B=HSTR8 C=,N"%TMXQLJ.I
M21HL EY4-+D8V5?4\:ZYZ*1L,S/_:.7E G1";=-BJ8N^YW&I5J1]R0#V38,2
M.]\<-(-ZG<32*(FA3'C.:40W?45RK& Z*5(C_#"4]'N,3)17-[> W+6A[4.>
MV$I5[8@*+:UG% (?+1S%KFCO&X\$G?T]W[V62QDFRM7CA.#4438[C 5B_H,-
M7R5TF 3(@F=4[@D.C^6DH#NA/,_*\!7=3Y7NOZ&/7&NE_(-==L2/5*7X8A=R
ML<[:14+)-%P=FU 7F>*V?PZE' F\[3F\ P#NPXQ:Y[[UFFV7/P7WL5IFAD?.
M=!1HS,DR2R\ SJRLI<?66W#'K:<I8VL=MUJ"@@ P)* KXY2A<"_.M'?6_AFI
M^_D1R E)[.WH@'6Q4:8 G9!:RB41U91'Q'4U1<IT'73(UJO_^^KEEZNO8=CK
MU5=?O8PM,_Q];)EQS(JSG=8%!]$@..=*=NY50*NZ:>V&]\7V[?D/>0!#P:&<
M2F\#O7%Y56";',H^-ISY7OD@ ]B+OK\Q'=2RD\CX:6W#91?FT2AE73.J"[8A
M4Y4#[MBF(&#%E,2/F$;96\MQ$[:,!!R'M$F"_M_#MI0],@AH4$*A.Q).^QEF
M#)QLO*>[Q;%)%%&N*R2/+.0G2J48?K2F;KC1&H5C\_-G)*T+$DHDCFTS7._E
MO?%416<'J&]LQU>K'^$L.:Y^>ED^"YRDCMTD6>%H,";]"RSM_![[<HI$+<5,
MM\UM31:CE)@)&!JEL#1DAYV<Q0QV>=N?1]G,I,_T_O-CTXX$Y?^:S1F74=&?
M]F+ORL/O*_G]K[G A%^-^'/%6BE*=W6%&NU96&]QU3;%=L2;85<<0:(=/.:Z
M169C0MG&)*7E@_.PW3N PDZV;0P/3@Z5)YR!NN\C90PH0P;# 'C\=+&MFLV;
MM114>**VAX)V<]QS@E6TNP+(KPQUW0<Y#=:3;!(;CO8:"W8+K)=KH *(!G@O
MT,N.NU)DJ!$9*3-66?_4_:CZX7$0(A$V\O(P&<F9B8.?"=7Z[ML7ZUC&1VF
M[F9?'N>P4/>BK))YM0'&3[O]0CH2.NBW7NW+5BPMA/\$F-"I8<-(=8>?#_YZ
M\53 7XNKS.),Y!I31+XT+S":7H+_ML> 2'5R'*(&E,TWRR"HVZ8-FSB_ 9BA
M1F!),9IV9]E9E)I>&&I&.G>O2:41*C#&TN_P_,>YTJ63\\9PEG[C#J2;/W%%
MQ40G1Z[[6.1+$U(:Q<8N%^+'JDJVBH?%I*S]6C?"NNK<E==JB(O/M22NG$WE
MP$?Q1_[L>%4]PJ=@9$@V_"4*!9O@!SOX"%&&+ORD)*J*ETZEM8@23%D$._]\
MQ3*H#[9@V1JP1UGYO!S,FV"_>"Q.2G .@BF9JR37M'8\S1ZTG;$<0FS\EB=W
M612A&:YZL"G10T!5YFR6X$[X29:P^(1\+%=!I#IDQSY9)OXP\-[RWA!@<$IE
MT :,IMS1&T*LM98DR\Z]EDN9]$).:PN5!'&KPO2X!C=/R<,4C,.EE<&'F];"
MEV(SOR>XF,WU^QE?IH#U<736M$^V_K$@RGY]B+(_+XBR!5'V_A!E3_E(44]>
M2HBOY[/%^3STW%'LPHFN06.8-;2S#B1/1DV<O@L_&(9E(8OP-V3IWML,.LS,
M<J]G![DY%2ZZ/67 S:WCZ1\'&^\^+/'QL]]3!0Y7,>[_1@-9=OCO0$R[A&XY
MP_TFT99-5 U"%)!S<CEEIJVC%-$9Q^ID\!GIPPI<3SG[@O'D,]-8G22^D(=M
MA76;7RXS/4QI]M/U]<UKVM<&[C)F C^J%P%2A< 93C8PZ20==. FP103\?I-
M(#]4!4M2R0^5.8>2-+>!'>L\> Q,#4PFSG>A@D<*/D2#G][]M;T"1ZL&DOM(
MUW&&N=6&V1,K!H_%CE6V$TXS%";CQ.Q1BH%@= (:N7YSF9=BWK<TX$M1(^@O
M'.[IYP 9GAY&X7+U19"" 9L2HV.,P)H.9K+A2DGN=I)E0+=/V>]3N2*^D+7B
M87 9'HNQJ3XUAHSF<7I%=YU)5WU$NBY<^N=P8Z[<E1'Z_FS(W^^J!?32>*JG
M<L%<8HZN\X+12BRDYD6$970TY,H*$L9(O#&%X2[0O7E=0E\Z%I\B4J4XS_X3
M:I7B4Y!40LQ#LA"-@UX5Z=K)"*8[_QJ%AU^@R'#*WZ3-*=R"A[Y"!:HJPXWC
MH6R&?MLP2!Z&T$D9*J] 0L<\F*B#W'U38\<6J7=_:&KXX_'S6>GS)(X[_HBZ
MF4C!MTOR?F CU)^DA3!E/VXL 1--6=0U]Z.;&H]S6H'?''YCJ#H=".:!_4@M
M*I#!JV"X1R>$D5;3MD=D>,^1!"/P5^KJ@TI)HXRKT_3E8LEHG89B&]*PM2K"
M*KTKTQ>6"I7/\0USK1NLVCCN)UN6BK"V,S)B=776CDJ>?WU#)Y5PH,:I%I::
MS?@96.B5HU=TE+BD30Z\+C:*$Z!/,E*8NSQQZ1S;EG/G7D:5)R7OQ/$S99LV
ME;YOR';[9KUZ6=3%MM"X:QL!02+V<I98/AV3JZ^E4Q.%OU^0*VE!Y^K()+ZI
MT3]L>%I^(X (/$\IUH3SD/P@("&O-?+ZG)DK^-8BL<'+?630^P[>7_;(W]H0
MMLTAEG(%<2'%XEKD!OC<[4+1HFW&3/[E?P;8[*M,04VD3^9LP2E;*+W!O$Y\
M?%U)(72<F?C ]63L44)BA$(H<+@@,')G.J*K/A[ZQ6:OKB8RF"6+=M_*9EGN
M*&]G_:^WK'4O 8&@'^MK%0UUG"^)/>H==(IY_DJZ7H?BFKS)L WCFGDLA(SJ
M[2*_I\PE2X*;]R:T/32MM3"R?N[]/2!GCQ,NX5(6.W2UDGB2"L6B)L5B PZE
M[VP*A\2/M&CM5=%/P+2CW.9=)KW>D=UDEL]$@7,_A<#D6V[AE#(;6IJHLKL=
M3I\!##\<V3%OF)1-2@)I*FIF ,OH8CTAI..:QN1D%0X6"LW!!/21AW$"=G;6
MQN,G?+9%<4G!!MN-RX&BBWW/L,YOK@3X5MOW-<M.79<;7K-O;(W(?+XKNS?=
M[V.E'E"],HHC>BI=GD"\-2)=D8 #9.PB?EJBYHSR/X-#G5,,>J^:ET_Y6/I6
MJ<W=&%\GIG[RPFFC\#[6-!4?O<M(K\6_GJF0)J)DY*4=J\?NIC##2ZFAGONI
M^^Q@5CERE/KD\H!)SXHIUNBVOVT *9S64;W@9"S70I$7#9Y$N[JG?+[?;PH5
MMX#P>MVLK@N $7@8 O^R:V30HAD+:L6GE2/HKEV"P;24.,13RWTFFC^#4_B4
MD@%M^95(<B"<O5?AU"A47^)W.TZ098T.$[.9644N1>6$-CXN'Y^4G>D!F(%C
MTDXOG<2&%)^1"O9G=[JKRS+\OD;]M+BV6[W;*/@^9F1.TXJ_G<RIS0?*U&7=
MS J"3*5<C*$LO18UY=%=/*V!ET5Y_;Q695Y'+T2UM L1.1?>4I'R7KW(!U:(
MG%=CG$@Z4O +0F^0D I9O]3'Y'=0, !6;U8U)\[]/(^C0%G%2(H/7H1=>;^U
MJJ6]+?*H;6FH3:VBT2%6&P/A&;U"O;YAIM-MO440 L\VCJ(U6)[?U39(D_FT
M=>:29THP",R>U#9?<%V_:ES7)Q\MN*X%U[7@NN865%I3<N0PWPYHC=^R *Y(
M;PVH+:-U6L<S9]BYV+6HJG%EW+'FW*%W^[0"PJ7^<<](="3 G1$M/(0P(JLU
M-(W/OY0[:H1GBEAT[L;QT#_3XF]0YUV[_N8\&9M4=\^R-?F!I7=M([RUNLQ2
MC_'U&(HJFSC9MPT'&7_I+0M@#J\Y(2I,X'6!@MVU:H4K/@R#DRW+H_=-4\W"
MLK0-.2$A+%FD4&<<I5RM,?5T:G"<!.%J25<TCL]'T8*)+QS-T8MA.M2=UP./
MLD*=,!PAFU(1B!FVL4FBP6*(H^5S*0Q7*R8@"G]1)I+4WL,V<MYW][2IR\Z-
MB @0*KX9N1M9W,EBLG^(SY[Y!"X?R *(\-(M"FJM*,CL9K+*O_C-YD('T"9?
M ))Q$:04PC9^=-&##XQH0S[[_ ]Y?#_:CK-Q/(>8SWGC73!1\U^@=(<@<[)%
MTP;![O_L#T]JSWYR^=FGY* __],G?W[VQ\\^^>S9IW]X?DMQJ@3'?WD3PI%N
MM8H+I($TK],="X,X[_-GS_X4 ST74>>7>BKN:K2W3**$+1J5O]6>3ML+[53"
M#.OF)I%!QH[A7?"6%/4BXM7_72QWL=P'M5RD3B;) A-NAFX&@JT0.-BGSL/"
MO@U@=U$W3"2C>+BH'6<%9.8G#44;,41_+4X"M_A;PZJ<Y+&9L0E[XR6Y;!Q6
MJZ^+4R.GX4NT;6]0+.1FN"ID<!,R,=,O^V79+[_D?N$-$(.3G# YU;(1PL1B
MJRA)RYQ4DESLDG+V8L*+"3^""4>4#N.!15(+?M6 5)/>QV*&BQD^O!F"B22T
MF$\3%=IC62.VR+4\#Z%ORXV!W"DA9K;P:0:^&.MBK+_@L9\UMU-?5DQSX,$Z
M=:PBN!P9NQ9;76SU%[95&[7T)0@7J8I0[V**BRD^@BEBX 4"*MU(\M#^;G&(
MBQ7^$N0E(*0<CHK?9("G\+0).Z4U3, A@)&-Q0P7,WP$,\3@J9 H7 B3VO4@
M^(@+(Z16X(74+Y&3+X:X&.(C9-ZBH(+F%#@VK]MBFQ.:Z^QZG)5?U:$7>1Q&
M\%/<* SOF5K:Y9RQ_MYQ#*]R'$HYABN,I'M,MB\)\V".GP$ITU%Y5443)OZJ
M84X \B E"/&%=$M&YH4N9Z5 .*;U524CIFD67NV OK],O781IB,T__*A,5WH
M.2#-K/#9G*8T*).O_BVS?,*]8.YQ/)A8%>6A<T/PT@8:BY+\?  .QB[CW,+U
M4-!-]R',C3$JWD 5E;91N@@PMDAY'8!0$_IW\)LQM$YG?%AN$J4#T*!QF]=@
M)Q5=KML41]Z>LI88-!^2CM):Z&7P2YW5&A3@D"98KT+D85-%Q@FH*JU+J&_*
MMF&&#<&.9W8S,M&)Q"1KE-<89L58O^]V1"O2 ?V8=#J!3R_[:21$:YNMYSF9
M9')@T&!RI[H7F+YT#9- D?JO-\'#=R*YVQ9XEQ["7E/V72$.5B+3?5-MC>!6
M^&UY'U1X?&4B8" /#^8)E;%,J?C[2Y ?8Q?6X5:57RR[\#L9+/VIXY(^:M?T
MD0>J,4L4UY+B($R*PYM%@&DD\9(6<EGO6I#7@^N^#?/CQ&\W2KQ ]/))?G;!
M.B;/!(\ 9;4E:OK;)!R<S=&[CZRS-UIVW9!<1;&ZH2T2E&M_;B@H>Z>15WL_
MT-78JS2['I-">GR)+D*M, $6MQ,1/( &4CB4&\\'Z?<BG4\*@#[$Z.155_9A
M3$NT;P331]&?MU_RZ@6/_7LN[_B\]7"X4M&X=/(5@] 4V&T(;=N&!Z7$MR:)
M!OHUJ#);W&8SJ'(:1;<>_P&HQDCQHC[1$F#\XU GS@"=T:&;44:C-,!LHG'"
MZRW*Q%Y.R!?'XP9]]=U+H+K+<"N:*4H>O7+,,,4!7.!\7K*^())U'*^CJ?_H
MW"<B#Y!ZM.C+A(*2-N (M*Z\@:*?JRZ]M>6/TZ>S#B@R7S,)^[$765&&O-C=
M+VXCCXC3[+$90T*/^MA R65#R:<K6\C^=-666]'J/#1;B2":(<YNBRP&9)U9
MU#B=(!+D5N*.#'H19]?H'I*"!_]MD8_;R0'4W#)@%GHLN830VV!K1V/7I05J
M4SZTI-'@$2:*8FZ;FTBT$:UQJC_L@D^%:!TIR:4MS*Z.WQZ8&-G<U2WI1? ^
MG'X'W=9F#R=$.YL?-C*U2ZC,@J+OL,[^VIP41'Q9Z356AUX%J-E+;*,,2U5A
M<'G+C[#6AU9/ST'YKBJN,^%6F3#<[2Z0@>OU$.F78^8SF_NFGXT,HG&B/A?)
M0&;V9.=.E@G%7]^$XL?+A.(RH;A,*,XMJ#AH#MSDQ$T)A&B$L5\'8GD.?)EB
MSJD YV@^9L+;$6-+D<I=HK@\^9,!G/&X VL$^4)(6=^$KH]:03\IG*'S6N:N
M:#V"B;M#T[SA(,'S+AA1YURRM5X-1Q2[0R;;28=Y'0+3;/(,(#^+!$XV&)NG
MA4C7-H@.FRW"TP(2>J*NEWATMIDB6OSNO7(%YVJ3YTGSEB+2/7;:8K78$]"?
MQ#24.<.!8Y* 5OR8]CP2BX548SG4)]? THU6%IC-<C?@Z[U KXR\""7A04O@
M_('('&EW@&_XT-."Y\Y73K7T74R2FYUF+_(8MY&2MFP7E=&?8AMK=E3TCR^^
M__^*P_'Y][SN_Y<.GO\@>7M+R]FQCN=FC]BL;R[TC\+/3SZI9A5OKV(G+%G\
M;J^9W][1DID]R%SDU)KA(;JAXQG(^*^6@<7!_'7RP.@1)0=<QBY?Y)^<_H8Z
MZ15MB!Y/PM<*=>3?EKH'-H8E9>+/V@/_QW#<"@VPM2FT]#9J.HK.W#X<:"'8
M0UY503)Z>;Y.\\Q&ZP*CC6#[Y@Z"W1EXG%_B^:SO;.$X!1*C')]EUT)[B#!E
M-^7!7J _M\YZ4[Q06O^0VB*=J2I:R%5'NC@=%@H\C5=GPV/F\IH#):G^U?%@
MG?[@+;)Y5E^P"Y;,HFH7Y+L=I'XFZXHSDZ&P3/Z%4$SQW/WD\EB]_\9[)=/8
M"1LVI $9YV#5"=P_W-\F%L_80EF!E**&LBX/M/U=2376G>^,&[YM<<7$^.K6
M#->X.IU9#ZR?'N"\=6Q*NY&!:WVKUN5<& $>WUMG*IS*+E+*6Y\[VZ6VPP*4
MR>U,*ORRK65 G:E]]9,JUI&W'S,8F;55S<$Z7F%Q'9%&+'6/5O^:+3YG8/+$
MP8<&8R9'@QKXMCCVR1RS?S857IXS$W[S;3B@G9SS@=G/RK54SM-_V5]U;9?R
M8HRMZ^2VP88X?GIL&Q.M>P33EV#W'C6N<2>(A<&YTC=T^%NUSIXK0ZSXG0K:
MGDA.F9X=,:F8-#F_II*>GL@=2&=\>E1&X,?BZWYR9+II*(G^3X@4H\QKT0U7
MW:8MY02DU*+D_'7*L:T!Q'8:R8!>1+I2J26H40^^J <LP(B2T$_:B^]F5#%,
M4YNRU%T)\]6FSO7E8F5!GF?*4T@/+W4(YQN>PAM<F$&].4-V@UXPF>#1O4EC
MNDF";/P!LWQQ&D;]E<N,<;1KJ@'9GH@AJS_TF.*']P+$TLRF,ML_;^T_R4G.
M\&YKJ3)7MW9MZTP0; 9\<AZV-J9SQJ\QXRKXCR318:%M3K8Z:6MO+?:UO$O#
M:<&QT0_O0W%S L80#PM@!056M&G]EIXL5HQP^&U2/(241^^,;[DSC4*I3'#J
M5!4;[=!7%=YFACCM]*[Y=G_2+2T;,6W$%W7L\B8E)%Z\9&5::)2:M[PB6J>6
M6["6C.-EV$ISOEY?'%!6S<X(PZP$REOW/PR4TP.OU[1UL6T$JF.O#PB0:@ND
M*UBLJZ;9 M8R;"KZJK\F,UUA]S.FI^P<*A;JB25L3%E'.'2]KIHK+J+0 QS*
MC1;/LOWLF=WD0=&83PUXJ9&8RB!VD8!5#9N0@5%VC#LZC.$?TA+7W$!AE:H4
MEBE!">JR/$"N$(URZ8YSL4AZF7)X[GD7\>^8SXF=#W^25XV(.NG&?DWF]S<0
M<<,#KKZ@YWU!=[1FMWH-S_FF;FYK>89 :PN)ATS1S%G,K4(?3&\,&UN2B,G.
M3@5+3K",SSR[@N5I<.0@ H-[TPAEY-GF>PZ,!CD##U%1,/Q_Z$)@ZQ4DFH(
MF&GI),''Q!G[MV6K'0[@F EA<2UCU^+Q;IH>.\>RN>/ RZ"7\SG##"WC_,G'
M8671MJ=T53I=E(.>O97_#)CYRTV)0V_FXZ8+6G?8[#L%N_L*)DL%67&2#%S_
MW1^WCUPDFI8<O6_?9<TX.MRW(R2ER*'5 QJFM"LBN28&UX' A#<:]3O6;WU(
M\)+<<U(D!RS .V=%Z^2)]: ZLW[=> &70L%]3*P<G;5!RZ;;<-7[Q)Y#A&AL
MD<% -+#\U(8+[]+GLUW\<]*R][ V"Y;J5XZE>K9@J18LU4-BJ7Y?9P.T#2DO
M>ZAYE_>X>(\U\(*,Z::I;KB&!<'/WB*ND_1)_WDX4KY+.5;]1I5 I]\ 8J04
MQ#L=O__U[-/+CU9T?U7433P@:@H<V'RSZ1O,AGS\Z7KU["/ZZ&KUHA.6S#JL
M_OB1_"T'P/MBN_JO3]RU4)[J3=%+8B0&S-&WY4Y^WV73IRVN_D\N2#!(7ZPF
M->1%%-VI\;RE0:ZM)FIA',5P&+5",3\JE*(R6Q>Q7,^P_[7_QB:T#"$)/U(:
MH0B6$:Y"JG]X:U=]V$I2P\".JBE$E!.X0.GR&T\ZGK2YJG0,6.J?$?O )9VC
M3&FBEBK="G0YZJU=>PO1:Y86E2G=?L]3LWK7;OZI%%6 +:UFMD4Z2FE"8I7K
MFPVMF*J;HCQ1;DO,I?'OQ5ZE( 4$PL"[=LP+O_8,[D;V('@.A@$)5I4_=@T\
M#,0!0WMMW30W[72X4NB"S;YN?AA*HQ=KY6J[E,31 3FC,-B 7P]Y'03BA(8G
MW>DUII[IE0?I]+H;IUV .V]9B=HK>]"K-.NC9!FU'OM=6"8(?-MC@W(9EKQI
MKPON:S5<V^OHFT&%M_B[!CY*-K@YC^-)*8?(#.;+)0*X\D)2'>+JM%;J>K$M
MC&]==[\((?Q'CTJPP9'<PJ[QOIVVXDDPW]6PBW+#7 )-E\:+<W2^'C-$GQ^1
M8ZP**B[\I;CW%W8._*:HBA8#?A(&S,>]11;N1&^#N%OI>G#%",$J6ZF;?8V$
M"3*PNUCH8J&/:J%XDM+A>:NB5DX2! UX[@S=ED4'4W";$$9$Q5'\P,U005U*
M?F(QY\6<?RF'.RB6-!$Q;(INCP[Y+?YY-Z3XUN4!:*DT+<<@F^*(^L_:&;UK
MCR<HB\JGK6*@;BW9WR83W6+V3]KLFRL9$)QTED I!8JFW+KC5M !3OH$/C6U
MZ>- ?V)Z*8"<5K= I=4!T&ODPMELXI;,'U^I2MH&6T @WA>YW=,N4'D]>W49
MVUQ&2 M%OG$=:TMEPJ=6P;" C+)'98A.[-80=\>VH1]6&YD7AN-6<[KX!_V>
MWO5<20L0P*'K$C(&JEN!<Z]C0?= B[7_,"&+?#V<IV^N'/3PZF0PP*MP:G2N
M.$( ;=#81"\535"=XO#/N&<J6*9XJ[<&C*>?C<"\;=@52"=3HG@F-V0$Y$_Z
MYGJU!ZIXPQUB&5HL.X/<E)#PYC*2JYM=-:V(@W?"#"(_8<!^H3@Y'.A7:%<Q
M)8G.BQ4GG&NR5'&TJ,?.O J91?')ERI0*""AT%2%7BB/K)PM7W:WMC99>/JL
MNRE*9G"\(F#$/%#OW8U[F+145E%EC..$^$I\%DC("C"_= EW-#'\S.XSPYZ6
M]"0:M0%J9QE61-3+9&7 W>IUL0O?-MA)?(6Z.!A%5KH+W* S3)LXTQFLB&8U
MY^FOP::ZTWIG^FOZJZ^^_/*OK]>KK[YZB6M^'P=)-JO7B9J&_I4742'@%#_@
M'D[-$,'AMPDRX_ Y6E14E!FXFK##W<OB\<9R9M3%?UZ(I;1\FID$\P_"W)5H
M4HJ2L>;)A5%9<IY-3/*>['I\I3O9R+$*VVO%*"NT#15,43MV%=JB<S]EF+GI
MSLU@<^\&*7I71,S[@Z:])T , [WZDD^+Q,*YT_F6R)N6"9E:VV6! HX64Q/K
M73.[<HRCK=E1,D5#<3@.')@E?Y/^CG8MQWGX9R3EC80$W.I@Y=CH*<'[.28&
MY/Z%4>@AFG!$>X[@SO!FQ@$&7XC)O/8FE+0M;;[91ORV2C3HN$M!MHI)VR^"
MP-B$((L[;1S;,(I*8,3&*H>HM<O7"%.U70[B3[])?K8BCZ6L$KDHLG13\$<Z
M"/8&[+NB('A7"FKZ];[I7Q_!GB4!\DM>87ZLR3_%U\#JPQT*>^>NFHX:?#.^
M+.'/T]>%^6)Z82>G#\\=)5YM,94XI.CH761B0N@>-2ADXI (Q65M5;C^N&(;
MF4;2OU?/S) V.&$UP)R1<H$*WCEVFT($3[-BU"BB87VT2+<KJN K:YJF27Q3
M.C"L8GGS?K&;GC5$._)[U<C=LQ#U5=L4.++5P6C=>7;X>_')SB>[!>X;9,WY
MP.89^7'QM,U/6'UA"@ CGQ$%W&,FVA<N7-SK#"(6L)Q$ E(S)A^8X)G!\\PL
MJ<SK%!K.Z2@(]?" >,=\+SPA%A.V/A32>0//#VA(PX_DH&'Z^.2&QZ>:FB>T
M]1.1-/A(SQYG153NW=-+T47C^+9]=[%49ZG?^+>M&6#G.-CY=2624(FRHYZ\
M'!]]J5[#'2;D\ZUPQ-EW5=RN0LWOG8V);)[R-!YCEYHH VP$H.5,4X<1R ]C
M!' [*%D/$H:R-]8)-^=O.\>F>-4,F!%3=D0<:G6&.)?$[$LP'WC'VP:NK=!N
M#IR9C-=&L&='0?+3:?YDD5X+S/K7![/^XP*S7F#6"V7EW()ZBGM584&H,';/
M(SH6/2@H2>6:9S9ZR!KAW6I,DCZ=,RUW9P,LNB#%00<9#LUH$Y<,Z+Z A-/L
M<'U*=83CT':#!'&^\VH19%F?4XM5;C>45,,M:H$;*W)GM#L)06G!$(<F2N>'
MBKKDMQ-(KLW\E\R:T TZH*?C7DXE([]QQ"LQ+4M%:QT^O%S];=IGEE'L^V\Z
M4=L=BW++@3$';%P*%8AIR41\1K3(]-UTZY98, R78<+\!W:8G1&P;RD_5?ZS
MYI8\$B"I<537(FW^(F1=%D: :0//#-"7Z\F0_I<"8*Z4/?OHV4=KC*J#>6^S
M^LH^\(^B'M YI7]_)F6DO.V /U00S0$]*H+0 ,"SV@A]_\5P#7 .??V/&=E;
MJ/<1989+]J?7!_ @FCH%Q]><6OHA\ "]92M9@?2UW&9J6;J%Z=9SR'7*'$>V
M+2):CKVVK->97>>V;[/WZZ2<E%IZZ:%=W0F/P9U3[+TQ0#R"JV6_\E72CX_R
MZ:C;P962X[$R^OI<CDMPVD%)NUIQ# KA1]&;;K_F)_.<'?0N:IP]Z$*X]'DM
M5"I(CBFYV&@),E^NV,\$L+M<!N;'.^\J5'SD<W+KJ3[-KF/5@*T=$E9M">C"
MU6GBB$=++9(T(/6<\]#>CJ7$@X+'Y>J%OV@NVQ-YF]# #KUNP&O8#:2LN,M6
M=F_\AOI%(/4+5NAW@162\ 5>1DLO9(]USK>M:" $WT!S\O!<3B?!_T0FOV X
M%P-]: ,%E(++SPU\;$E7,U;>$8-7IGWHOF7%//I&KE]H=&<6IMF,E8NR%X->
M#/H1#3JEK)DAYI%%S#$YWW*<,^IU\PN=N0C'OW=&M(NI+Z;^X'K8RCBDC9BF
MOF[\I,AB<HO)/;S)<8]:+8Z^6URSZ:@X<^=$C3TP6$[^V/=>+'.QS$<\]R.*
M?Z##'(<Q8ZJ+=LO%5P:Y:TP+#L5RL<?%'A\S\_=!I4)G&%\F<R*+[2VV]^"V
MQPI:0L(YK<E/5 \B,^QBBXLM/OBY7-:*;RSZ,WGX2>O[OC2T MDVM_MW(J"3
MPRFML;V.!7[ WF*?5FA([KI\T\9O*BFLG]JZ;<N>X=CI;E./V#>+9AO"RS9:
MMM$CAK?TY#Q'*,*B1Q63.-6AO5;J9#;_U"U>['&QQX>VQZN@G:FF$Y<YU$I5
M/X+R1&U:Q2F;VU4P%VO=4W3,R+&R:052!I]KH'BM'BQL#HLA/YXA)SRC\"_T
MV01ODO.),_V=0.$S. -Z +L=(@V.<[JNV93<X_5CSBPFL] RG-%*]$A#QC;5
M;QLOQA;,2!.F![]FD2?A/$IM\-.QO&%"/3(4B,)*!2V*Z"FC19@F#+U,8?EL
M&S*>0T<!(&?W(>(5)U27NX@PNY:;3+(%<'XY.D9^8X8IYQY=\0RW6=PT)0.F
M]$DD;HA/$>_=3>9'U9,<:OG."D\3)?H<J,,8LDV4?+Z;O=]@$I[@AV<U^?LR
MNKJK,#U;9$(>/PSDED)KRHPU)-+GGV)T=P8]8]QL9C[73;-E%)&^2A!TP7D8
M1LDK\Y@&I[Y$2<R%$T%I0N3=*;?#=E#\('E3O(Q0\*Y)HSG"3NOO1L2I]&E-
MIH;1B$;).H\@-'J)+N30$]L)Z=[=ALB,\.>CXG[R5,(3\ULO(NZP$C*,-F:5
M/A:R;8I8/HJZ0=:0[A0D6;1O@)PG5P.>D2U][9I'P';-&/5L5Z*]HI0_E2!4
M769K<'E!L%8L<[.I8KC6L0!+FD!;*T%$YE.8$W<,X,#M*[F)8X4QXIE;H.IN
MRD:\B;; L3VJXE:9=:^'RF">Z5ID7CO#QD*J&/O4<RKSS[%S55+E#!T>R23\
M>C?M^ H9*W.^3"X0==+.Z24PRT;'\Z$X?OA?=6?@=P#ACOHRT8>Q2%0^6RE;
M3A8HK4%$?8UC9U%'QURX\XR-5Q,"B3 #X/T+ /?.5(4V0^Y>95S:^,GKPOB8
MM6]7%>6!?<L&D![V&SJ<5T_,0K2$9M_#K:JVI 5WL=$LKG^9^%LF_AYLXN^3
M9>)OF?A;)O[F%G1$:_%39-R6V8AL-L*4'JW;81,]<K2BVX!-Q'H0N_,)WKD1
MM6P HC'"AU&J(N(/,FW&%&E#2\E&%_^%*>E,\M-),UCE&'4\1I(9M0UFVD*:
M9CMWY;E 89;FM0[(*S:J."K:%9:.U!=Q^$WGWM)PR>'0U/I3/'KD&'=*H>]8
M)D+O([B:%_K00FZGXGAEC12&Y31L')0+!LMF'\W77@]UMZ?D81MZM?I<SAY#
MT==U3)8.0PT\<. 6S@7//A=5:*420=>"E#!V!N<BLL. 4.).)/U?:UZX[7K-
M*W@P=/6:<?LMDD^\U=M0(.68N:O$]\C52YM4M.%'5ZDJN^SF-3LZN<'$?@]Y
M&;DE?@K'*F9# )>KO\J48ZXQ(\6E?-Y/:$/BY:N3;RY<LY)-:V6KW4@AW  ,
MJK1,^<N!?)85T;I3UX=#2K-X!$<SH&CI<>HO.5C*:*I^SY.]9VD0(_]05#@2
MOE&@SYB:4NXBHPQ.]ZX5RXC&X&50>DG($^MHM!TF79 +%283),-UR@:SC9F_
MG#N=F!6SC:;DSI?Y-,EN\4 !;(_9LL7U4L5WNJ?[F1N'3DB*A0B&-B"HZC"%
MW8KVN3V2+E]2K#4H7F(]Y7+!3DXI+H=);8I70"N7^_*J[-U%(@D4SVK39F-2
M1%0)[6=%.>=TE#ZI2=TV_J449&1,V8P=<MTV'0M,:1E@G;)C/A4=]=Y(IGX[
MZ.@ "\1GM5Z3KJ>_N1K*:LLDH*@@,#%OOR_;;5*.4H;9\Z2C?'BF*A"OQH@-
M5+9-*C]M%NJ$.UW[=T'V!?FQ32 3VJY8N=W5:M;2>[B.E=>NV?6W>!5WJ#[-
M!]4Z*DOFS()?RR'KWX2Q4F9+S)S.&.?]<<U$Q[U (,;O*+XBIW?]S>@Z],=0
MVR95RFC>OAR]0@-)CH?TZN0TP;Z78R5AX..%URLT*83KC7F,0Q^YWQLZY*^'
M-A]S3R+2\@R9^XT,=7K7T0$58B\6MF-)!ID7K6_*MA$.,&Z+R:_ 5>)4Y[-R
M.]+?EK\V7<=\N6LM]4ZNWED<#H+BF3?!I<'>1$[,84[>SV@+4= 0P,89E-..
MLX'U'5O0->]VS<!-F?P)@+BM]/GI !16TO'A>[GZFA(?G"#K$48RYE=-B]*>
M2, +P$"*T+S;8;'T3W2$C@TV9S-(C948/$!/CA6VI#>C$C#F0;0YQIS=T2'1
MN^!%3:KGRMV <BMZ4YT$^'0P;J4T*V;22? Y[]U^VON:/%<DKS\.5SC5P1 ^
MJ5>O67*>[Q^B3!4WM^XB:+2UM*]YWN/8*FQBU9I.TO0&$0^HPCV]'0V!^:P-
M!]D(UO)DZNKU#"QP+3+N4$ULR-S7?,WX!B/.UA/P@^^H6ROG1>!W&ODIXBQ,
M1B&B%J;T_MR9111:A9O2^N'N1<;>K;T OM/I$*.U]BQFU59J&M!)-R-PG=12
M90);D[6/;RJ2+ S=+(.FLW:YC*25:#XE;IO&LYR,6#T?YPQ=PALY5%]9\(WA
M&(E,$[;"#CA^V45?K"6M:#J5X73!J1R2MWN*DYG\OGVS7ND)Q?@N[- 6.07O
MGLREZN827$",<?FUN[*.Y1<HHI%QX^\Z?>\Q0E?]#/LEQ^.!8EG/!P/G#.SR
MU]9^;-J3 GF3:FN[TM[X\U$[[%! @JBE9$/K>-MP -/Z<U1$#184:%MC59ZO
M;"[3*$Y\H27A#9X[G\@+\3RZ-B/=;$QHH4O_EM:P4;ZTYYZP9V;%EH!R5+49
M(5><<8?[#=S(B-1%H__+M@89!*FVP,;H8#U">ICLC-5A] _9-Q1IQM\88+FF
M@KNV5OV \XZ^TMN%T4IL.AS?._VX9NR2)Z*2BHWQ@=T,.*_7*X;D??0\_3;_
MQ<?//\1#"\MJZ(OVM);P=*L^F:\([BP^8L47)-8IJ?$4E7<CZWGN++Y55*;#
MI@T9OU2ZO'=&EE&/*V*3>]BR-B_J:,S]U)H\WM^_?4V/(G+!/4>*&QO&TMC%
M=E&<6\WXH\\LX.S=VEK2.9VA0/A,5%>J*Y\])#NOW-K2@VU:\EA87-X]F^P'
M?]_"YT_9M[P\787VHNC[8O.&J0D1_$*@G*,HR@(OKCCS4#$[& FWEE689L=_
MWK7%L/4B=T+*TCH)/"V]AMHZ3''/\D4%7<A_Y$1"U"*R=&%^WPF>[:Z@8/W.
M#O-R]1J[.1:+6ZT*5I8<>RZ\2)VN(FB5/4(;Y23H)3"4R8D32]JYUJL=@B)S
M61X^R#//\:V32XID<9S<TEKK1M_3"T0Y5O>VWCW> *=)[E-X)5V?/FDJX=NT
MA4=?3@0Y'YB?<_R1.\XH)8?\D(Z-YKA'N+SAFJVVZ:08NE:))/S5!?_513<<
M(2PB%M9P8P#+(?]!@="M@0)M3>/T"*<>CI,P8@<WN4FGY<.+;H;>%:2S>[$?
M%46[!M5=8;;7K$AM#;_Z[Z%V#<,#[%0TWFO:$$9'N T[)F-)FP"M!8%I\7ZE
MEWQ;M&[;'(I_,SQ4KR*XK;<ZX96=\,FZV06#].O#('VZ8) 6#-*"09K%((V+
M J9;K?SB*['0@)(=&EFI_C5S+(&-KBHEO1^=7=S^DA*#-3 %%(U</0O7'?NB
MBFL= 7/>[(M2$RW7P)7**U*\H",!D6XVC$JSG$\)V^Z2DX_(G+7KFQ_.PQ%A
M 5<3;U&)17E]@ES. CT3MK. T]O&M!JT8A1R16Z55BJ(]);:R^H#+\TC\=DV
MA.-J5[P)6>/F:A2;'AH /WR &L$3%.OAZQ0$[E663'_M0Y\M;!K*E3](BF[M
M8'2W%)\<]+-<>'?W",TC*\&CZ[^]0?5<:!O)'@71SX$HI0=T15CVAVC[U%B
M9G>AEIDV%71)(P<U9N&XRI'^<E^T-]:;24'M 3,-/,? $_%H+&AM@C?1!6^B
M]".QAX#&@I!1<^Q6[30J])^!3EO1;OG/J0MDA3$4!UQW?CZ/,1B=O67E[-Y*
MQXV54@L5R'WQ"E3954BX'=$ C#\<R$KW/PQB#RA4X/^JIMEV<^F;&N0E",DI
M\"[00>(^ X,JKC W"PU3'D! QF)8F@0'DCX0]R 1UL=43CR**:&VL3@/@=>E
M6/!4G=YH^ :UO.; IFVVR=O"%!,R%Y-GT*S3J/SQ]%Q5*,2WN390WL;1&I@_
MXO(#C15UL[.K:1U1?+;C5/*L00UNILDG!R(K9@H AL4C+U=?_DAG-._.8W%*
MO>1">UU27XV-1)L/W,')C5=*ZORI8S?40$9IBRD-]AXP",I>-?ZB8'2DE1>W
MY-TC2Q%V5)I,HUWM<O5=.#2]9)$L1)T4,!6 T[Q-WX57C N== D^3$P5PFAZ
MI/G[GV#  H>ZU2;NT%LK;1O$.T!9.KW5@%8)/YI>(DOM%:M 9\6>7ZN,I\&K
M8.W+WI)W:>^2.:AO7)S-DW4VO6V.%)C02_QOKI!T@"VX.EIJB]&[/Y3V)\UB
MUBKAIJ+H&*T>'U4"LW&SJ%M$6O,SUIBZU?$\VI\L$3"8"L!]I9H'O>D)BH%V
M#/!\:W%S@AXP?W:VOW>Y^MZ7^]2GT<-?<]C#3YT&$77S:6I@^Q_Y/-UAZFG:
MC\Q]G-;/!NSNDB&-6!!5M5?/0K:"H/I-W=S6ND2;YIH+F.O1ZNOT<3J$NA#>
MV!"HW:<7G(Y,BR@!"AMC,?3[IN7R:%J*A(+) KC9$K5#DEX9,LP$W0U<S(.9
M%A09YM$.M5G$K6Z- GR1/^!(P&2VB$#K6;QXMJ?JV53?B;69NC[UV;-1]YA,
MC?D5'!%#EBJ2&>6Z0>O55U^]'(D%\=]]&.%O;,Q>@0;EA[@;) + !:R\H=.Q
M:Y69CAJSY@;:%/^X&5XXR-$5%#Y![G-N]XG"MRA0V\BN>W*@O^J>KZ.]T-3K
ML>AO;0W,J+J2)I/BCH0_B;LI@<45F+P"$MYP92RA'?TOH\S25,#=]R@CUG%P
M?GR5G%M(P( ZS9V/U-O/I>MR3#-S3&;T[TFG1@L6I8N1(P/)F0#/PS(E;H\B
M[*QPM]2$\IH0UWNPA-DYA#4^"D//IM6F4J(%U,TC:0R?,/.M3E8D='4C_N$?
MLWK1>J;'10%%U0Q;[>/2!5MR.BU81UCC%@>8="6LF,"F11;7GHX)V3E@SJW7
MBD)&:Q,'6<*A*"L)7QCX$"KD4"=_7F95AE@N23/^9Y<O)GA&7J.;W"F!T8>[
M-.IPJT))MNYYP/--KH=^:.JRCSP'V8^;@\FP'FD3P%LS(+*S$IVUFR=7.N-D
M9B]\H(B%X8_(6"K,/F"L\6W"2X]$FPD87:TI9=>II..J, [4F*M3W8-UTSN]
MIU\9*X6AWBIX7-66V4B4BV,NK\WB-9O T0LFAHH4Q%)>.2F42Q&@E])\_IQ#
M6^L+JF=&A7(KRL#H\D3I%A(R$"=MCDE*&_;YG; 9OUOX>SHZX_A&L%_ %R*U
M85"@9> *VEJ<"*>(D4\/Y2^Q\9_R[6S+.& $]WV*9TEY4VQ.4FZ1]W)A$ULC
M*I.!]S^]F-NBW:9"M&,MX]C\1IE3]?;6 LY,I1*KCB#PYQ.5EQ[7G+R3:?W6
M#-W*'" Z:L5X3ZDT%9$H:8SI>B@H/NM#L(&U>2_AO&L$G;M>3!QX>SLHBMRM
M9*"A]NC4Y>3U)Z\9N;Q<FW0(VQF7ZD=$%:<8!\^F%6RC1D*5\@IO0L;9&.;O
M9ASCU>. 8Q3\Q>'&A&[D?XY=RO]'Z?TX0%;;R8X'=6$Q-< '8G=!:R-IZ, W
M@\S@[C2V#_E>H\49E0\S#?DC8+W:-[>!ATYF'P6SIN*/)\\4DQ7$,D#!T+Z@
MP*0D;_I_1Q^.1&SD0JN&NU_R,U;LF*WBQ%Q;'88?N(]C 'K4R'#"5N>(I!7+
MSU#-6TN":^K@A>-?&CWJLCM'%!,<).*5@3AAFQBF) 8[-/1RR!:QTT9<[VV8
MT%$-AEZ6N31[C2GNBPZ "]X3#^#FB;W^58HFC3/3<B2>'Z[KH*[[$!@1G&*3
M/&W.E#OH3N)>0PBCO7BQ),[^<(;.!H&(3KA49G*EM'V[,PN8'A(KJ=;_)HUC
MQW_?A4+E&@5B64WK2XHZ$(?G?6G1+QBS!6/VH!BS/RT8LP5CMF#,[L2867*!
M"F(;)+-!I=$0.M&W8PR$<^1XTN&T%-3/G:?JY6J"\&@90Q*XE('3('XUC1&O
MOL9,VXZ[1JL7>8'H@Z__]N)#'.BUG-999YZS-#N9-@6.P;FC7X96.?Q$0=-^
MU^0OIX/-:T7YQS/.+<4Z&W*.5:.L7.1B13F6T6&:E+ZYYG#*V# =PHCS?:WN
MSV43CFG$6#QY(,+Z0H6;%8Q=IKQDK,_/5\QG%'/I'(]ML&:BS.@E^(YVQ5UY
MQQI+HU'N)>',V7/C3#,#6X"!PU*E?*"9H*CF*VS2HO0O0$SAK8MW'B.:<B/?
MMP3A!(6>X$+F<5&Y6I$Q(Z\1.#+RQJ@5I(K!_X$^,AE0U<?1OU0=]G-_.ACO
M.L9GQW:TD'??Y$X^QGL&:BD)+$K'%"V_];+)BGDHK16$/RC,ZTU2YLDO?CA&
M'\61\F6[Y!F@)>.HL#F45QKCA[.&#9[RX6,_0M:L^O;T=G6;R]5+/6"X<&I%
MRJR'Y:N3O#FCG))2RL6C3G:J*C1B7!^W/Y-9LF?>TMJWIPM+ P6,A0DBSK:F
M7W+/\Y90JWF<P6)PSC^GY/SMWK]0WPL9Q9"5G&]H1].+;\LJ\6CTC0!?3TS-
M<@-#[E#C4_I'7WN+37!HBI&;&(H*$4-JB,7A?ALP RB(Q^YF(;7B%!LI*>H
M?40=:UU0')(,Y88M.L32X+)*B9Q3_4FG]]*T=L+ZRPAD\NV=!A!*D:X@!2T2
M"!XK=KZR(T%048I 'A.P>U(]O*M,*4$\M$%#YWM-6=AZ0&'N&BT!9?KA31UJ
M#E^D@20_(*Q&UA9/+].]HH@5G0$U"T0SX8)L!K[307N^O/'@&6_;W.SYN%WA
M(-*>R<<W>\Q&!7>]B1QM>/3Y^WU:.* %")23FI"3^0 QDPLT3C.5^;?HZ_*8
M<J1'(J,6ZX_?V\Y]<:Y./J%*]%LN.9FTT8S-48Y*PR]E .6<MF0M'"3K1$!"
MOH/<96^8EIHI<7C>XWG.0(1A8:G4.T^AK8^&(=O7^QXT)9AGTEMI:L=A<28@
M=6,I<SOUPXQ>Q7V8ZQK*W_0A&H#;<*C=SDQ'S/,9CBG/IZ+P\^=PUDQMP;#S
M!$1GDA8'2G<D;E' _/E]J/EL_&8T9 _W\>%S1YB-N-\3M5A"@]O$"3'UC%S;
MQLUL<21&0\JX<&!M1\Y$V6PEW7'%YP;$(T=7-G L36@W 5-ZZWFR,#D_^VGA
ML8MP-"?8X[ ?H&%RTW-S2!'SP G"872IGMK4,[S*;W.N+Y4-6C_RS\V]W<1S
M%XP<(/%6L-WSQKD%D8.NB9.S6&>]=&4;&[5!WBI.>EJ'R7*6S+3 8YZBA!29
M$4U89P7]XBAH$YMC9-8=4?QR7,?6JCQ6^NU;:]A&;!.*(&]KHI'#%NBU)# V
MM<8(NEK/WH3I\1@O!.XGMKHX[S^0VXA"-S$O(\<B!&( PE?5.@(U9J[/3/A:
MK>&]M.1>^928'=G&(\B1!9\Y<R'(%"9'WD:HEX722$N^N[/L2\45K,:L2F=\
M(H$*>[:KMF%^E%0.H@2\UF8GCB,$_8Z?D:<%(FB+#N22_EU^AX]4(4U))#01
MKC!$<5%*!0^@QU$E@,C\R(.N&-00GC9FC[1^QZ_ P9ZWX=\7)6$&]X5+C6%6
MSGDG6?$8T K;Z*-V 7/Y"K?]ONE?'VF!0B+=SC'\*WK("O@"_>4R1^XRW7Y*
MMX4]WVA4108CDL.Z\1OA7F^5JYQ%U0S")"2 N\GMC6YK*7V>(^_+WJG)&F@&
M8_H5 D*:??TC_K><]RW.]?>G(X#E$"&HQ5OA)8ZYW(LCG<$_E@<A7O_X4_ST
MLT_C3[&V"?0G(?J"QB#T-V9-$I]@;;LMGZJ,+8E6F&S^0C+:R!FOD-;-INB4
M=BY^'64580B^$&+Y2F1GFBJDO! /4ZK0G=U+7$D3KU%&:*4[9#X_4;M+1*\2
M@ .!AG?5#:*6&K>+#28+R6\BFKY<_3W1?"7U4@0$T&OMH7:P8=:G71#\I]'D
M^CVN-QYIFS(!0:?*8'JL7;"UM>=(PV'[<%"^?"P6HV)OZ*03!\/QFR!O0^XJ
MM,B ,I*,ED3ZLM6?/J(3\Z2YS\S^'ENN/5E\JDU!5EK$!"P2B2>&\>8,HZ&]
MK4O_N]LF='>M\KG%O?\VV*8ZMW..16D<RVF[6<TRZ(2WWU)2P:L.3<=1HW2S
MU[GEE9E00KJPWE@V@,7;\Z:H5">63=G:]=*;N%P@3[]NR--G"^1I@3R].^3I
M=QH^S8B&QRYM](]R2H\*>QI0935!1YD33U(]PJ\QW''?J<D!MAVP"??!WQ7B
MHE0SX;:O-10YY/])00(K&&C O\Y;XQDAN0G?\21I7*)W^]FS/^F4-KB'SY"M
M+(FPP.IVK(TN:D1B<)W=I!:3+-CR5:)Z.%QA_F>G=^-N1@).'.&1OF.5Y'F/
MP@HM@2T..?0NMH+>SB+F]<_+;E*=*YOXLRGB(*NNNN@2D7J:9IOV;T;J?T]A
MLRWY_OW=.A:$&+D:58/,@"T%AK9/,;)%#:H+O>5R+UNZL>\IY ]^_F!\6;#S
ML8$K<G(*SHLRV4O*[< ?6'JNL\3 7MZ0&UBD'?WR'Z]>6\_<DJTA,1M#/V_3
MECH#'9,R<V%L!PGJ)I=.5W-4'X7 >'CJ6^5/4A=UEAMJI-=F3HY'FO7N*&W8
M%4J<Q_7(6T4"8NQ#OV%W0T8G-PJL[UK&2 3O8G!!%J]3AJPBRWR*6+D$*9Y?
MDT['$J4;6X=;'=#"E7GVA'$G8UY!MFEO_:85>!U *'"D0P2(&*NJJ@SC+FRY
ME2'%TE]2*87#SU^;C[)!W0928*L]W<7%#P,SK3M,L1!OCT(* ?E$B0^\2YS-
MH5T<3%[YE:4=K^;JV2>K/2TH]O6V.*UYF+CF<LH*T]OAS=JK7?4MA3\Z#GD5
MNM[WMG;&Y<+]D[Y44B3Y+S@K(8^(>*UO(^9+"D9QELU5QV2 RS%?,D0DXAD3
M!F3-]$I5V%[[7V6I&MK:S.TWV=PRF<? $\2\;' ,A4X_ISNZ(T](0?$Q#D=C
MY1)&08J.%$+27YN<UITV+$VY6,X6;AJZY4@BY:W[2&]G"#F&@.=>9\;+6:V6
MGJ3<O.&RJC#>0X64A9TAY4$G"]W!!;J'\0ZX8ILHHEAWAY?'[C>^&_P=+T;&
MBEF.]'< 4>"A"9M9G[MV_M83$0C/2?"#B*/F"0 >33S3 \ %H[KZ1+K*CC_-
MFO:A.H[P:HQ>=SJY?"=1?BTJ#<N$)=<P8RA.^X!%O'/G-(Z(\G)9^AVP(@HV
M$HS*(%"+NETY7[-XM%A\=?Z.8X#[U+[RM&L)F=^N159$#F.7X8$8H4P*:E($
M![)IP%C1T 9?)'>J/^=;$NFK7&]%3%Y?5V'^XLNA]K#OBJOAGB'V5N3VXEOP
MGUX;S%&ILI5W@.)0E"CA3^./L(]#9S]^F+SX9L]^"W=K_W4A%0TF%%@[HO.W
M,1]I=] *E'+F<%FB.6<YSM>S"V&F-'K(37#.$?I-@04VE5'F)$,T=6$:S^1Z
MP.[#A949JT^7BJ">@H]"!J4+6!C(RAK<\;SX7-FXT?Y74><C+SD=2513/_^4
M&3<:\DX]&94_(3Z-3;LU&'@X&? B'D&T+*IDY:"E3LC&3AVG6*YD#2.F-FMB
M8[$GK/@R5S\COQC/49RK=4)8SYHPNC4V\28.A%D:<4=E5W0PF/EY(F1HSO9C
MB2IF@J' &.:=OZWFVN4\QBH-I%O(KNN4WM_BRJ#V];:7_C4KIR4]-WU=_E,(
M?&IY\OAP>1KIZQ^YZ.8Y02?>>"^JKE'TO@W-B!P199[TPE#A95#-5=L4VRIB
M(<_Z_=&=4-BHC'DK4>]!MT@H^B9)IQ*)R3N4G_H[ZU:UJY<4Q!3,QV SFJ)S
MUXJMR/=AS\C3.Y&T:FN#]HJ:7)I&;6)R+Q)"V4J[1GH^!,%;&TUBCCI%!WY'
ML2R2>Q$@LA4C;] G3%*,TM?&G<NA.)T5J]GNM[,4V\PIQDP_8O$6.=]:A *Y
M2B6<*5TDL+8ZB+MJ=J.9IK/=J;XNI6^F?RM-/9/<6@S1[%224@6"^O@WJN7*
M;\]98_SEW":%A9&_(LXZYR+7>G8]#DAW0[5#\L$'CRQ2-NF\!!@IP/@Z"0&O
MWH339'NSN<1M_'8A'QC>DGZ:12V-'FIQM%##E]/(V+CLQ5N+'ZKH6%NC-RGU
M.**>;A2^I@KU=;\_:0H3 *>G0ZDXEEO="&QGSNL(QY"R(7:;?=@.%8N!.1JB
M>)).[GEVYUD2D@-8UGZC2YB6!K-N0Z3/BZ'<S-DNOS_]09Y&!$0V=5Q$\%J_
MIT-SAIY-6B,Y#M+OG5([7;IY2L<))70[R_;QK,%^GL8<S<RF6!LE+$\(CIH2
MW$'C30C?G^F\G ET^77O"P57%4=[@<K%I=8*H#4@7ADNRR; M;YDU9U7^I/B
MOTNQH+=)+Q";L?/O41F[B<JT65O84$G"&:Y<A:5M:2G3QT)2PX3#:U>@CT^H
MK5[AR- NH5-#6KLY&0I:;.S#*34+]U/!U31\D8Z:QHO]A7ZO+0&M^8%6?L,"
ML-?8LUE-GCPG7&8\W)HSD=Y$AMQU8BT.7I\1)(\/]&1;D@O<Z=<'=_I\@3LM
M<*>%X6F6X0E%^?/4#4L1.2'H4^-@,%YM199'I34O56BM\"DOOE;<TN1IFG<S
ME;18GXB_Z2AV(AU!/)M38T"TW@X6][B^@I6PI^V4)<+-*M"&4#O[AK>!*60<
M586D?N#%;QB]X0=MI">9B)CCA(K52HW0EN$87K0O7MVG2)XR<^CNG29T"1'%
M=A3"F<ED>'TND*?,>/8FQO1.VV"M0"/1+[+*6MHM%&E7C'A7\37'*$/1="B%
M6URIU[=1RFB-8FEZ7JV[1/9]%NU;<ZTT4EZMM7JD,) DA!%G+K2ZHJW%,SSJ
M6(JT)Z&AK1RLHQT:Z:#&5G+7NLU?>(P05>1.[@(:_O5[GF4E:D5.H$IIZBY7
MKOK116T?I#N4NQV.1G$'4%$V VX37FF(5QK)T 'AAUG'1W$+I.,R.V-F**ZJ
M)'2B^@.Q )\N/6&"Y<I#6N-TU\XCQD48^;NLM9P<'Y?[%[>7NST&,!AT-/9Z
M9%$=HY_EL'>??NDU:>]4BKJ\AT7]+[[&.PY/ZV$UVG>:VY;BU=RPH8BFW9&#
M9OALKHBY[G_L>$SL, W8WH%,>+)IZQ+132V>3[V6.8Q*IEKI0V5"1VKZLR+4
MKK#H9.\,.X0"SAYZG#5S753AVONWD=@G=X+:VJPKS6=S@W%Q4?D+2\WL0:%H
M>&<"Z*J"(MQEB) 7\<6KD0)745TW+?DO$RM7T&I4OV81/YF/QZ?I#9U$*2D#
M^43!JFT!0C:O!^M4LT^.TS^_I_C]6>M:SYI7K@,3W5,J ,9$;AT+:HT_#R]7
M.C;J5F;&M.,RQO86U^U%[] %GT[*+ &)7\)I__W;[R\^45FPSA0K&V4]\/VW
M"G*!]+_U]8 ?9-;X+G6VXYNC.P<83SMX9U]OKS"V4EEEA#^A#K?K" FVQ,GO
MSVP'JMZL=1=\V=JH..;1"$=PW($D(G"EF4-QA= EL<4N7[>[?4RF-VE Q-[>
MNV-38OD9E-)_!8?/[]1U_7/.=.]\^W-E QTF2QJPF#$:G,*8'"G:TB]KL#R)
MQ>1"G[Q;\PT<9\ S@"$+L&R;8Y^)"JJDZJU3JNC4#V,"+*=#I.=T/A=;X5!L
M]FC$T5[DE;,6)K:/.%YQNOZ4M7V[JXI;Y')7)?).F\<O-G0NX,;4[^7Y4=SS
MB9_ZWTHTB23F33C2CY7=(:Y,8@A??4F?O^9Q;>V3Z-IV= ZQ1F*?_!)D[S7A
M&4VK-6WZ3-S6TO9A*K6B\FJJW7"%^],Z48H41(DC:<MD[(]\_3;2B\LOG4;J
MU^99QX,7.7FR5^Y2@DIIM&5ZL[.:Y4:51&_)RZ!QXRF/@@3HENXU*J79VZII
M:02K/= A 97AJ2IHKBX4W-//L>?Y8W46HN5<:CZ!L/C5I^I7,QS4_,&<><OD
MP^:BL)'VCK.'+9WJF%T5[FCN&;O(@-O8'&(8:6+6DW;%%4Y-Q?:%C%(H-KB8
M9J'BQ#L[QQ"1B1;07 6)#V0@%NZ38A0DRO!I1Q2^#"MOXSAZB, O)Z^]SNBA
M3'^;]0TH[M#U\E6[.DZ;Q>,KJU<V;<A7GF^+H:1^'R(I+]MQ4AZ3\>JD]Q0I
MZT>S5T_!!I<-Z0.=6O%*?504$,_O, D *1Z"QN@"^=,3P$;5Y[G962.5N=DS
M)O18]DQ"J"."YW]>OKY4FI/Z@O]#1+#RJ"AR\J@#89K/@Y22>YE7Y"![]9HS
M)&AETBFT-7[7(@4$UU5SE4G??3F AD4.485S\6W0=NX1?4DQM&KI[./Z)BJP
M#"#+:*.%ZQ;7>_%J1#HM/U#4GL>;+QHO5JS 15OS44JKK9^+HAPRJ\0G(>=>
M^;-Q95 "0:-?Q1U1-/+-S*=9:#IL5#4^_QKSZXONBU#CWK"!E)V20\6660N_
MU/KX:NH7+8NCQ[I<O8BU9,.MN+"&XXCSH<$J$E5:;)ZG:9T/RJS)<YZJE-]6
MPMAXYE(?]HA)):<Z[A-D\'2#\4CI.L/XY+3&4K@P,G;%,74#XC;<UU#V$>RL
M@Q$O7OWWUU_QJ^HZ2OG1>REK&[$S>\4+-1Y.WBB<9?,]2,?&/NAB0!C(7P?E
M1I(@G2>BT2/@-5(/4=84:3')0Z]_ +C[NMQ8BX7O4%ZJB/1%3+$D JXTR_'C
MD&"_\;Y]MP#?BC?L^=8_$&):KB?P6$/\IP]-,V]43Y9#4"CM3(9:9(#XXZZG
M(05PMTP;!DO.R4B#;8+,<5>>:U(L-5P_::Q= FZ:U=F@BC!?T)OJRQSV;W0'
M<D#D$WPVH9I-$^8CRC\G_G@/R[3@UW[E^+4_+_BU!;_VD/BUW]<Q(:?^PB$Q
M69C7\V(OHGG(89NO^3KV*3^9HKH,*@TE0W*G_)*I0T0^I[K@@LGW,<3>K)'-
M"-'$5Q+W99R?=E@K'^6!@D3R(P4E&*R=1J<[<%/R^\+;D .2N,#<'#%--XM/
M$C@7$C;&;*UG1JS.+8050L!Z8#?P;40VQ*Z/+0XR&YU3$T89TXC<:2"95^4M
M2Y*[&='\9$&+==8$D<0C,BE=3 VH\=<84Q%;BSKO(JI+-D4D>R<M*(6^PLZ,
M?A@GR+8J;KF4LVZFWT6V]V^]EEC12"[#5^[G93.<(*4@33*N" ?HRLI>=UKR
M6\5_\^5%H6#I)S8W<Q5 :^[JM#!_D;VE2/64<]K=KR0B:6R()!OS:4NV5.^8
M8KP_]_=^4")H!)MBIL[ZT&X2:A<3?,GG;#T@0-X>*[+&L:"LOK7@/.[">9@@
MCNG<9'00B8&Q&?I.F:A7_ZSY8Z^YN 8USFS.TQKHL6S8\1BV0%%%*<*VZ+F7
M*O[$ 0OC7F-XFT,NZEUI&2.[,9;(*]K(G09^'8C1Z=U<KKZ)V+*R'MV*5,$=
MJ])\P53*I%.!)D5T@&M3RUIBEJFFM%Z!1Z$YT%$LAR=FT3;:A.Q\<4K.(X0+
MMZF$N2LV<<N,WD8&L[T=@0ZEDI7Z*>E16$T69VJOFX[1RZD&MFN+0P"W]NA^
M0WU3MHTJ\5GN/T.GPXW84'09(^FNV0Q"@] 5%=U$V%$4@O+9%\JFP$&-NXO\
MMU%W0QQ@=3E,[99O@D!R;] F*C;,2YJ53Y4:3WY+EL?*XJX@&)<HO=1$I<$W
MVX?B,*Z+\<B _//FM*E40(=^#70G,F8ID8]R%D9_QW!?_M[\6X671/?6DX_N
M1[><^M"Q-,J"U_K2%0UQ=L_Y%],RV<2(/>N+1':("YFW<)IR?-:?_0%'B;9U
M,]&VA[@U9TLPNQW7,P_ WH29?-5X(K #7 !2Y'=116J9+2?"O)C/6H(Z#?LF
M0DO\+]%);9G'*U&O^%=3G7Q%^$[.%M?*^8M_+2YAIY4X7%1EUU\$4>OEU3BZ
MG-V7(^C5/?O\#WE5;?3B9JMG7-AYSJ_H K_8_>6*CB"4=B8O,RTE[.2S/SP4
MG>3/?[6?7'[VZ;.//_O\3Y_\^=D?/_ODLV>?_N$Y>>ZMU*/^\B:$(]UG%5='
M:U>\2'>L"DHKGS][]J=86W%%K/Q23\6J.:",9Y$%YCL-?C:0P]1<<5<-D.5@
M/Y5J1Z@;Z?\NEKA8XL^T1#NV?>,<\74EC4X*Q0 *V\0F/8=4BS$NQO@8QIBQ
M(JGF=^F8NYQA2AO'9,MQP <*I>B_^-IIS&@QU<54'\-4(T*;#9.>A/YSG#><
MSSD4,51&5EU?.NK;@O*0]0IC=S$9&4-!)H11^^(F9YNE0+@&_J,91B%PJI\L
MFV/9' ^].6)HR]HT0E_H-HNJJK)9;S9@A$(]"\+Q7%IGS+A4)8Z%P.BY9+&8
MZF*JOTS( >\J\Q Z$'>%J)@"$902-D7;ENI<9XM!BYDN9OK09@K2Y9 PM "B
MLJ^<CP.FMIH@J9,A_<5<%W-]S*K"&:42\IX&I[8QX,44%U-\>)*S..\][23&
MI(JGKUS=2X9$TJ1$YZ8@^3I0QZ&7/.[?I;D/!KG3!0KFT\R&!02=PW%M-[0W
MH:PJY'2+\2_&_]#&#^Q)VQO/K%AQ;.]W16T#3%NZ0 EQ@:02_=< B,)!I1Q>
M"L]86'TQT!(.^*M7]9:62EO?KVT QLH:W[=,-7]RUXE:A-\@$^1N[=]T&[WH
M6+3NI=SGLA.6G?#P7)>Q=L9^WF(/C,O28I1702V9_P*L::JKP8[<(*RP;+/9
ME_*9U;=Q]O"%2L4H0N+_T$UMF\/J"[WZ"^GQ/?OHXX\6"U\L_,%C;K+HW<ZG
M>IAYE;]=76DBF-#8/PQ-7RA!0Z.8)=:X;H>EU+88Z",8*%<N#)L%Y1JE8C$M
M >%@"QL6F,'T<FAEE+QK6"=FH."@7$QS,<V'-TT;@P!=C]$8K/KB1P9RAA\&
M8 @[E4N6(6T>$9YO[2T&NACH@X>O!@S35,[7)B*K"C,ZI\$A)FC9EU=E;\IL
M3#F%":>=1@AZ61G0Z1NAIM@V554L=>'%C!_>C"/W1^*6CHI_L,K=4&_G#6\9
M7?_5C:Y_^M$RNKZ,KO__[7U9<QM'EN[SO;^BPM.>D"9 B !%B9+<$R%+LD<]
M;EDCV3-SGSH*J 11K0(*KH44_>OOV3+S9*' 35Q ,ONA+9*U9&6>/'G6[SMW
MZWH\6N+1\@TB2IA=><DV.*$]^<XUBV&?3$QS;$Q/'Y.*FGA'$W\9C: HJ5=>
M'6<%DWA""<&[7:)I-"#\.(Q^@.2913YE0"B7L<F7CNJ/V2HMM:$([0G#?A\*
MKIEC*Y=.VBYY""'N.@B D&,V;+^C=BG'_/S#I'KR[]N$P]@YGM16?>CM<P[M
M32#^F%J#&^:X=HB4HU1JG*.'<;ULV1;+G=YQYSM^B8T]D8(F'@/VQ6,"T=@&
MUK(S#E_13'VJ#MNK4D50&$;,$%^YP?W@FT,#H-@0-]^"Y6,;IFVT,MP-JIO!
M.U7;KI0%E7 "*JS A@,3VS8[G&F*EX5;T9. @HA;-0.DV [%RF9DA1#8HK=O
M\PR.4<^9$&'VS@&"P3@Y5 Q@MQ]WWF8A<#),.D%K+J>N&[LVRYQ:G3T:@;.U
M$)Z!43F7V.W0I9PE:%:$53B[43?NON[N(V8YN[]D >DP9^X-!J#H+B:%%_.)
MY2*[X H2Q@-QWTT1<<D3G,,%\WR%S\/KU8/<K0A%,*W$+A+: J\;]"T6LXKA
MZ07OE;OV]=\]N*95XX*O :>#BQ1Y^ +/ZV<G))@&'+8G:?8?'*4N4!4"Q^E
M.,DTWWWEA81^,7J%EFQ;D9:8$2DU"(6QT"[](D>@%G*M7.0ET %,,,INO\ &
MHLH,\H7#IJ"E1VL8M"Q:*7"VYSZR;E*+#@6OM.>4A\!BX":/ ,LE)BT1T^!X
M$;)CX+Z4:1H%Q*"9EVV#DP8JE ',.@H0/W3CIA%T.P\!@[0@""_!T7_$IJ$A
M)TB\ 3_I#:+W#&$8N^U1$C),?K2&('5NO1M/3Z- :E'4VJ6%#4L;HDT?*%PR
M;G-EGCN/FD(L\40=KXY(17M1KI1*:HA>,X2J]5C)W24T6=1<YSXO[4G9Q05D
MYE$X@4Y?4?1T8.+K+Z!6T,^R2S:0+5T1"0P[/OY<56?J_QB+JM00-ZVCBI/:
M"2\G&L^:,(%<\Z<-;>&92?B"7HZD+40S,0;(Y.Z6A3;)*'I@>_N\5>T_0('W
M._Z'86)1)]D%F(*ICRCW%=*-31U #A6*8!0-OHM) G .=^@[L7T0J[<SBMJ)
M-R@85#0FVW'0P9M"Q*!YSH"+,(V]? .PBKFE)1HP$/H27U?CUS<(*;Y&_3$Q
M6 G.IX+HV 1]&6M^P'(@X\W_&,NJ@:>3>HCS?T6&M."<L?_U8X2<A!$EE4</
M4I5B*%-X81E7W/,-+FN.EC*%2'@KS@_6\X)09+5C"B!&)IQNG$\/ZV0),Q6+
MB.-R<Q)D)^O8$!0H[&$ZFF18]ECRY"BX F"G53 .6ZSO5@AN7 R3O\/CL)A^
M$ XG8&(3Z9B7"6&$5691-@;C$0I[B4#7D9N)D-GLRJE(@,'=S3]1K "W8]A8
M #;N'Q@]*.CH!>&MRE65\R^L6K #]_0S."0BR)7 0H$K:/$K+W)L(+@_7'FR
M01G@Y^/CINF*G@=SO3"FL1"&"$!'@_.Z2;.*>3"YBJ,F'@6$ %-3V@OP<C*:
M/.ETYS1BNRH>1F<<1O]-Y%D,=X'$#=,OG,VHF9Q2>]B6/+HIX2*D%3">34O9
M:NK0ZE$SUL!4-O3?E>VY;DLK&SIP [TZ($7,.XH"V PX6(*HV%_B'B<9Q2"V
M)C=:8"";X13PHTK[=>5*6#3>N;?HT\*CZX&[>62(R$+XS.&,H9,"1HA\GV6E
M?TW]0-S^PT:\#$Q>QU\2VM>XMXUT6U(36]%:1AL^?O#Q996#N*&K"&?@/"7&
M;0J2E,&H9##F*W*XKUTD@Q@0'[J4[Y#JDD\[_3;EK\Q+#)]4:U\R*8^,XE82
M$?(.]@)I[G'Z-ZBDCI;#V@10.7^:KGBI@V(.YLCAW)XN^A0B2<GI-1X44B%M
M]I]8&AOPXN,97#9H*)B\%]!FUZ*ZOB6C=QON4!#0!4V4&4K33CLFJ92R#W2+
M$I_^<(,M9=_,YN?7\W2*W%DWL@_B@X9#Y(</5@V#$DBN@I6Q#DU5*VW"KE[K
M/M \3^%2L]:5-K%VL7+]9Y*\)Z4[)=\"V:NRDV5JX6C;I="%L@ZBQQ;PAQHL
M&]-/\]@'>YV\+C#P<C@7/&Z"'/:6"C,-@2F#]B$'"XL3!J+R$7#FY:7\+'?9
MX2D]/ZG)'3\LRXQA?/1WLP_@'GCJ&#L\A!W6KX4^H;&=%?M,_S29!SNV</Q5
MF6:D#>UICGS,I,CA&2U8LFARTDFF'0HP(Y?H8CKD=M2E%2W(H2G!_%S!3$NJ
M&;[3QWSY53^+8_AF#AN04W#;E"^.I#AWO+)P%"L+8V7A59+BW)_3VE8Z,$HZ
M;FJVA:5:PY[3H+ZFG/10)P8?9/!K"AZ2\K;MX-09H) +;"F'ML]K-@TL)/XP
M23XS]R/Z+!1*DX.6C&J.M]KQT+%?91B"Q&A.@Y$1QL^;52E8!NV4R3IM5"E@
MI TNL2PT+<>@$-)\GE?9#IY1)^#?+3-'D5FE>2TXX>1,>,QT#2Q-5UGR16P(
MHB@4 9E(M(=-3XNLHP KNQ574MC@(KCHSXO$HEV:M1A7<ES;9L$-R5F2I0NL
MGU \YE+1.,]7761];1HHE'LA4[#FA:D]X>;$%G])]W_'+O=&E>(--U:@9)2V
MB<]5 Y"UPA3#&G>>NJC\L(AOL;;VE* @FZ.R("##COG$AE>^5I CT7%=D$3O
M]X,4D;253]I8Y7?HQH1(,;RMNNTW6BLTOEHBSUU?NX'W'54NQ15<8@+EXH7
M/J@&]O?45!/<2.UREAZ57("V0#8'5Z7I7,U:N;2@I'C+(OD#S%*-Y+3UP ')
M.,#O(Q?^T^ZK!&A4 >@@!/- 55_7EA J*X^7H R7P>ZE+UAG$>KJF^Y.'DA&
MF3B*,)A<"L."J@XL"=.I7;+'0-EO\Q63.AJ-=&#9HP)&*W#<,(XP<*J=F"'Z
MR8XV^D:_+@]+'SB0@+5>DU:14\]3RX]R$NAY5_1!/_EU\ Q FZ)C<8]N(&S
MF!L<AL20TE7F%4-M,!LV1NILSL?VWXIW"1)L:#]F%0C$TI]0=C,/U 8'W:#Y
ML[@<VG*TD!M;"4TU402K@R@ 9A(:^[F!LSEEXB ALW;L891DY ,3/V%G0@>-
M0]7#6HZ<WV3Y5_P)!2N -]OR%XN_X))G T?!AK1>WNA"3I:VDBB\.Y_9Y3!+
M.N?<Q];3"D:*!5+^&.SOL/>M^':OUYQZ\^0V&%@]DKUOHSM^9=65"G+"#Y#K
MA1O)JW%W1B>6)S1L$EC.\D/4"4H%]=D@ZKL[V,9$.Q_H",=?1-:4A:*5\(8D
M16R2D0/%^),CC0_8#'&H]$\51D;C<NFQR#&+ .L8%8,N#YOG!25_M<X%'8H2
M+^*@2I)$;'"1%D0"YJQ#73T,>P&6JE9-^VPQDU 3AK Z(NVAB.EAV'"._KVK
M3<ARU,U$:T"O*X3"6EE15MO?Y[K9XL>A5YR'/D?)<F]@NC>(W8E6AP[ >BAV
M?79M]\?Z*6AW%3N0,LNN*H#R2ZP X$]H>5.R/X,9190CF.VB-J"P+6\>4<6C
M;?! ZL3.M1-^<?KID]><GW"J'\8D?4,ING2?D$?/46=K;U)5TK'A*@_*=0K!
M'9;!@%T'ND B#\Z])-4N)B\9X6NPCVQD$R+2@.W#E _/<@*3:*_)+1*>C<2+
M23+- W]"W:.W%%%9:'S(6K#TN);UD>2(S_CDQXD=6<7J"6RE3+=@:'(7PH#2
MPPF)XM1YSD>9NPZ--K847B5H<O'ODT?>SZ& '?Y_OJ@?BX)!@[V:Y#:]PWX&
M/&&&>D_:!D"M-M1S"1:<0*^Y^G-G]BN,%50K;6,5,D967KG*6>OM,P(&ECSY
MOZF(B/#:O5)+9'OA5 6EQW_YIKC +>R7&#H(W1*NRP I3<D7:"MF#/3G[[%G
M>84;9US@B:XIEQ6 65BQV_VDY$P:1_# M<>"'#Y\_4Y@BAJF.O"\V)* &T@5
M#;)_^=N]W.'--KY1H_UN&QEZ3?AA\GHZI4\[Q% K57>S5J&O8:(%JD5$W1$R
M?Z8$A6B8PV2C+@H5GL60\P#.:WKSL,TSK%'JUXX8&:QL:9G85D7_B[T;H?5O
M6(-VBHZ5 M+-'R9DHP$L20HKZ&Q35WOH28"I;F[6NX1DBZU%E<"(,T@'BH6^
M#77B>MP][76250:Z<"IDMUR\NWGP//$=F9L(1V;94#;7H5@JF0N>R']#38<O
MU,ALA'WYR P/AP-$>*7?[=LRHY_XBQ(.RB% ;$X!*,2Y?*S7I.8D0/ T1*AO
M4J:VP=\_CD'7;=6<'ZP8<J2&HZ2!H*)I49DY*L0C$XB5L,PND ';Q77T'J7\
MTQ$'4EQF0DLT!U2HWMGVNH.%,(7CG&J=L3Q?WL<]--*R@MW*F=1QD1X7D\G%
MEO TKFU$R)?_]6_IUSI (>I/GB!EW3!:(QX3@G"A7J4()^ZKJC(,QY69 OQ*
M-X:^=_&^P>K@5;.#G4%HLLCUFU6ZU\@-]O91V0Q:,DV.%P[8"BKHGS0[+<@<
MF9\93"GNV9U%BMDV;D!R987*V?;?NB$:JVI,)086=.&)VN)PSC!Y(Y\DTD21
M:9$2UL048?(JGL)DZM-/GT)5(]]_2-O90G^ZY<!/H!'E(SDY10.@F:'183""
M1!N\^O*8Z9'AERUS49-%B[^#+>4AAZ-RVU;EIHJJ:/N^P>KY$FY,$8R<#\2/
M(A4>O_D@>22=C6_>?'PM/8UXYE%HD,RJ7O..*(7XJ;!GW?X!5P;4% R(4AYB
MS_B:65N\K\;FM)HXJ)8,7F=W_4:\B.:<E\N2]YZI;:7?=!XT$V!SB%41;B/*
MHUA3L![!N;%CX$WA'3[:/#7?AAN*?$G<Z+:(%NWE0/&Q56.$K9X.C:!BS6]"
M3I;#(*3Z8&LW7ZP\NWN59^-8>18KSV+E6=^$LE548></V6APTF$J5(J+S1%Y
MB^(2BE=,+75%0<C*W*@N?K+RCPM,6_@.1 $RHORLF(]XU&&0,7 T)6G/96;1
M -M6H?FU;5!*^D(FZ=*FS"D7VUI\B U1^O4XDX163HNPAU7U.(AW+0;5X-TP
M&L:K(,Z:G\V2Y/(M/NNC#Y%\<L-P-N&[WY.?WW[\Y,U"]6W"">(?"Q>Z&W__
MS^#&Y)$E2CVBKB^Y*GSVCU7Z9UZ<.<Q?TN/DT2\FAPOPSS#A],=__9?QWN@5
M_/_X^2O$0('[LK)./H()6:8YYT+EM;_\_/&M'QD^[T,Y3$9[@^>[+YZ@32PQ
M'ZH:=>/Y:,W@]\H,[HY+WO#Q_<=?W!L";_!47[#?90\7UC><X.P-5)[6M?,V
M!OLY4L;0RPR8JNPX3E(.4ZQYWZI.C#Q\:ABVR1&V=$%8VQ6JI_%N ONDP"]&
M^=(=,"(M@V3T?+COKEJ5B(2<("43]<#[ZT5(J"<0=!R%^K!%?9 \_9YA0Y88
M(!4@04F%2 $%ZF!L:Y&^_5><(=$F."V*2DZ='?#$#I,68QYHL!?D,KM(LD2:
M*=?2%U\L*S#Z\S]M*6?;S,N*NE@0;1 D@TQ]\8TD0$/!8G1-HDK?5I7^VD&8
M".R?U!C+)L[L=K39@]/#V_W!_0'%R";D'EHWD7)URZ96<KM!.02ZH19(BKZL
MR<IQ.\DWN*;_3#ZB&\@>2 NK'9N5>KUCJ+H^S.?:OE@[)PL#>R$+(J'PZ@96
M7V:(0^VP.[ TTU6=D<(^RM.@Y)UK1^ES\J]@2ME8UMK'J8RYJJ;V, =VAXN:
MPQZ"'"%09@*[!(I_XAK75>I9S05NY!EGM(,1< +:UW;91*S.OP:3H<>A5-=I
M">=8C:4#7VV%>PK-Z Y, [8ON&)[F&+8M+4O.L*4>7 4<*:RDX+B%;>-)%H8
MY5R0&KJAKX!AU\$;?(4K822?50;CDI@4F][T6 XQG6?D/,"RXMHFM2,E0Z<\
MB;!,7)4\-#;61>:/"](Y&^@MA_TQ+::468<YU(:DV?P,'\^JP5HO+AEI;&#R
M;2[V!YI@ H9 5=361L9(.#W? =*P!J#/(SO+PTX-7-%:HCCSN! ,2VGP.>%L
M#^R(T%YS2Z#@56Q9IXU'MI*,Z34G\F72Y>IKW&#CH;^U^F3M2.UNR<I; %)D
M1(RC*/02X"V_X(5\KJI@-TK7?Z.J6K)5R) ,A9'*0A$F5[3DJH6QFXW[G,PB
M/--L;32X":&Q<NKN]6'V3J; [D/EU[P^)+8>#)5CQT:1UW,\/O^6@G$.+L9H
M "[!^%F2PD&/I=YY32/DE))ZLLL6\-:;8/L$3"JJ1P)1J?(9\\!+P)Y*'7C
MB&W(";P-:<UD;@H*L^.5=C4P)Z@70W9VWL,;#Y/G\9<ZB\W==;;[<(*=-KW&
MA3JY0YN0"\CP X[R4E385"<-@S1SH,^HB<\;+:[6/\?J?5_[36:([Q'T8U>*
MBJ!%\<LLE(KTEH&!40H"C%50?)VJ]_6]D96,P?W)%N3SF78$AI*SFV;J?9TY
MG:9+.S PMR:V1IW-P:((7&%_M(5FYI3J[6LNWH4/;;NX A9%3<D#L9XIH=BP
M_U37QH9]V-8;=F'4HQO:9P*XL>YA3/8)-E3Y4HH.V%.K$G36LT'Q<<5HVH+R
M@D;H0F5PF)-,X&G.H[!RK[HVPF(B]R(%R2-I1E>-98,# V\M+JF)C<OSV)=C
M_@.K0@D.A+L[&&IL9HMC+8>4U,6KF(7;F]02;#7%!12$@P\^54-8H^PF%<2Q
ML=KK%%41-]<:F#F5FTPPPD8N;7]9][E*M#VXM.5'.*O26IG%'MZZHX2[277>
M4YJ#.O #T/<8.$#+L.V[\74UGBI$EU&N\;'U'_4P<ZN6S1@[*E^8Z0,,5H99
M]S=FE:Z<@Z R/U*V:;_(_TY/>M<+<&$>K&NRA8U<QFV*V8XJ6H<1+J?YRA;M
MVPHOO8J#SA*^?A^XHKTNWYG^J:T/4E6IN2VATK,E<Y24>CKH\3,22OCXB:$8
M--R!H+X( LA-Q*SI0&.C>4FM?=B'=$0A[EF:@R6VR&NLXZ=B+]0L>1V6EWA\
M=(F]Z!!=8*2IRO]!8I:$4\EHT2(P$]7ZIUH#^V(W40WIG-<%M4SRB($IQ!<0
MU^24ZSE'RF]X3((%NF'Z!1DVL*^49(.0&%FHM$C;3AD67P+AXOR#ZY\>=GPF
MEN^NC@N%"0]5PY74;#)X\ 8*Z*\PB"J1$-_J.:']AFGDFIC).8LP*S CE(([
M>!@&48;@@('&H=<PUGHFNAA_HR()H987GXZMT\P<@0\7%!8Y(&,]-+94<O)$
M5*]NV#>OG2V'5\+EFB<UTG@-Q%ZQ45"I_63K2R#@NW'BM#DUN&W-P(D!"V?6
M[0SL72I[<O ," Q!$!(D/#2'8IPR]G%-(5[J3YH8U7.$/81H+N)?3?;8(H]M
M."!5U/WTK@.-]IN9>@6;53^7@Y@>FK2LSFP28],Z+\XZLT,0ES.0"10J02SU
MNMNE7GNQU"N6>EV\U.N!&C4,$'R^9E52NV2>HFVRZ>@8,.Q&5I%>K0(=K2(/
MY^Q9(^ !5. 430DQ^/MSC!,F9N$@"XWNI0;CZ+.(I;LI[)H=<#7(P'>Y#JC#
MK*&W40N_KV*2&K;'I_;7[DCB\WQMMHI2A"-VW!>C*FJDI;$D?GC8JZ^DZJ5:
M<Q#[ZFZT^?&*T9C%EH)[2TH&XS1B-&K#/60'+F -X8^6HD;XG1!G)4?P@WJ-
M7,JGGS7@>&C/,I7$5%I D@D:AYS8)WG9L>:WQ)O30X23:/J),G1K\^F)YB[-
MA=SB&D8$FP_G^X2QSCNUZXRJO\* .(>_L<Z&&8E2XJ; N#@W(V%(ER'Z5F7#
M#:OT#K"/6YQ+A%'I/GX@]"84(F-7]PAM#N/B2S:VX*ONW$ 0/5?S^!')D,W@
M,ZR$3R%:7] (W@7;@KYW>Z#!MZM^O.;3=^1:8_<K=BE\$SE!R*]6J3 U;.PH
M]^4+?04DH9%=<8\68^JI&I3 (7GE!JH>+"@<HM 6V$?!7!BZ7>J59O2@J4:R
M$6E5M;0J^*R9$;P3DC%"4%_BQCYYY::>XC93>#N5>VG<YH[CTH$_+JM-QNQY
MD"D.'@RH^1N910S.I%\Y!^5QIW*'Q)\RJ0U%SST0#(7I;1C7Q^W0-SG?7O+[
M9YK6\V0&.J8?,H:U^3K S .$-;A%W)0K[\Z%>S!(@J0:!&<QH(/6XZ2*2 [D
M%, +!,]$2RA>3] (2U^--?$=O@&/G?:&3T4T6L/I=%*I2$R&B90B#3QDX+<-
MVD64T(1D'0?_ *7&O#A,S].W#3MA^ )SH XFBL9+A$)Y0SQ><#K^NC3)C_EA
M\J,!!R]'GLH?$1;WM1"LX"7O+>YC\LE8^#/\NYU90FL-K%&OE!WNKIT/G"LZ
M$2RZ@LWQXGL$1.&3@)]\EB"^0H&"ITB-K3?+*Z)*HB =POA3YZ%=!CT!%/CA
M)6[%5'606XQ"Y7H%]6UN4>#(-VG!T^^6 FX6&&!U3R=FE3=8L>P!OO*9#9,=
MHU8EC-G&U0U(1PBA$V.L$!;-52WI<0D5(WPRK*A="]M[0M.M!Z14_+2LL$P<
M,2+AJHH[%=B>PV/<]7DN34/'<T7E+CCS=6V:$)0BY);FQ\"E[AD.&S0E1>#)
MMS,6)9\3= C&I2.RJPQ]_/IB=(\5S_M.=B#1V3B*R+4/&*R5:FKA!4VU0Z8*
M,KL=!HC* 5:TC-$)MXS_#I1W;>6A<CM@7.MA?N5IZB SQ5>IDT5,6"QCLOL9
MEM]66_;FH6@S6CQM[OU(ZR8 /^C%V([$T#VK]IG!9[BQ3B.?!7X+JPB?LZ&C
M5Y;.G[X<"J':4F=W#$1_@""8+#QZ["(+HD3O(SNP;:#43SA#%:2(/'"YS55@
M6PO;)@$12?> LQR7.VF]D^ZH+#=#5&#9+&=P+,BKLDUXV,$TV3P<?PM\1UIE
MUGI9FJ\M?P]%K<Q7^E;\H)"#BXBU8,7X6*PZ;X =P17TJ'NKQE5]J""9WEPT
MRXQ(08#KEA_&?DXW",9!@[I6!XE5] )[(7 A&*L"KU\3<O.(*+,E@ZKG]JRW
M;6N8[O,:89.4:%-5W"C*?W5F@C E[;=C$&">(\8JHOYBQ0S.(;+>(;PKDU"G
MTVG5,L N'?_\^+732_G#6M7D3CPY0.1B=UX%R21KV.HU[:-1:#VKV ,!P[SD
MT?+K>A4;3BE:5'XF,>PCH8O9# P3SR?QE:+"[!/UG"?VW%&E<_&(T-U;I#?^
MUL)^VMNE,N5]*0OU!O+Z4G 8$K8&T<6ZELX/O_Y2NY9.3&AC.>!70O2%3?N7
M_=VA:XP<,+4PGN1_>;H_'+E62*$-/43%@,@CJYS!9<>[.#YP!RBXC%#M?YJ,
MD4<8%IBZAON$!E[TEZ?#%^X-6"Z':HN*8^E,Q*_ AF)N \6Q*LHRT!)O6M&-
M?RLG-?ISA!'5.V]4;(:3QV7+.",],_%T-'SN9X*G ;XY7?('2_$//M16,.I&
M>?5H$7@I&N2^"R$6D1TB.R.LQ\;?D((D[^N0NXAMHYZ%?ML[&-N*RC5W\TV9
MD=LP>G'PC/KZTP5S?SS"RRU:#ERDT'*<,^6.$7K?84FZU]Y4'B.P]CQ?R7$O
M#T"O4'U#IQ*6:(Z5#F'QH%_3-)VA-X;)1]3PWIN:>@_0,ZZZD?DF0EZYE.KP
MN+'=\04@ 'HQ\)$]/@OX %QK?ULFW<\><AD:#Y\72!A(Z>CC2A2DZ:/:0B+!
M\1\I*QS<EBY515['Z99J=T&[PH@U64"54Z@KA,>&C9ZU))O\V038S94K-$I:
MH7K%<A"<DQ(7[P1< H CRUQ$U8M2Z>RZTMI:%<2JV]Q&Z.@C':[@:_"LGR*5
M8.,BMR?@9]>L:;BR'I/TN.?VZ'YAKX:?G\-:H$7!'^=(-[0(2G0,S*6"<P0,
MRPNJ."1D\J-!O71\<?+0AV4:_.2;2J6-7#C#^W@-',;?F8'*6*ISQTMUGL92
MG5BJ$TMU+N!@B2LOA0!4YT#!DT%/'Y%5M0H&VP(4<$A'U;:Z<(#*<X..Q^BN
M6).KM+%(_&R ]&MOSJ/.>H&!/&H4:?$JI2^H2_=R;H"AR@1^22U(\%0;+#F3
M!56T5G@F4+D%F$B3?*F1&EV?Q$;D;3ED=)$"DL9XH,5$TQ'QI]=KP-[3<G4B
MIU5J*>FPJ8)A+GP'J70WG>_<$U-U"88X3HZJ2EZ61S;EP,MHUTX'//2B6OIW
M6RU[[C' =_S1DHLS"(@/L5]@04BYAY1!<FQ@U)7FJ1UM=XTO3:";+D"[_D"W
M^&E>_-X(+/.ZQ: 6RZ-07(O'H%> PNM@__;UPZ!' **-?V,0J@%Y(@1(!+_[
MN_F:3\L^3*T^0*Q!\E-%"4U<\9_)4&:4@NY0Q?^'+:K@8S JAYL:/Y/AEO:>
MTN8F1\LJ'-UY8*N?9N)_V'W?_Z$\_H'[IC?I,LVX2,I^.I8F'3L/[+!-X7,:
M8USG<-T_#@EN)(=T>4:#IHB!U9D4&R8U2<DR>0:C5BQUH>6)[[;-!7/O0WED
MJ'P+?1B>33N-KG_PF(N9*.)J?VG?S6]A]1D 4KB+;9<&KU$ N??8M;IU81^H
M7$DQH,)6AH_GLK>J!VAGTFF"B!M=4V)Z5@(*-;B^<)$4A;:5UY)GS87Z"5,F
M.]Q6Y+#!)0>WCMR!5;4"*^#;= DJK<Z9!;-/OK%P!%/C6$.'UV![+%>IP>_Q
M_5BC"7O&5,/D';+[Y3.1)AMPD.#<DI(@+2N)M4TE&\D?-V<?40/;2\G]Q!XT
M4&?H)2.>9]0H*!6_UC*BR-L4T5H054:AFLW.:^/84Q*;;VR!0Y1N?8PADYM6
M6=2#R=H&Q12S-U2ZS3 36'B-JY4V&P). R["I;I7P>ZS0("Z-%,2G_).UE7&
M]2O5YRB!TOK-&2^>ZMG_RG*X=0JD7-E>MQH&OIVV (:0K9AE&##M.79LMBSU
MK 2VUXQS?W2[8<+");_M8\\FWM@-VYRL)/]&>KZU3?HM/*Q(1@=8A-S,:XFD
M<7.Q22O$ET+-E)=4II]Q?(Q<$(JC(IPA3#(E\1I<,>F3HT)6&^.=$9HYIGZ%
MQ='B?[J:;MBD&'NC\J+T$#OB<H*%HCVH;J9#UX=.76$"*QG=R""91:XV+TIN
MR@WDT]4[V0"L]4):,5%\KW3I>G#I)TK4<GZ:3F1G!$>%H!3".]IBN;/J!MY9
M4FZ4]Z+$Q]+J61]O.DO2DA09JLEGZF=B_N6M'BP/'*3N3C:KK+-*XFMK*D+^
M:/O*VHV%>[%//QEJL;8V89 %#1'!V\/TN4@NAJ#SIL<VH"RY?)\ N3ID(DYY
MZW:7LX;MFG?M@:Q[A@,N9L7H2MM#53]N" NH>C9;M]=OM(< ;9Q02%XO#)8,
M@%+EKH77TV;@X-_\.G8)P$DYX_BZI2@2H+A@"", C[7OF)SHKB;D)[/U%X@E
M17HJ8/GJ;8+U)53MTAMOK()"72:?,[,=,>V*RR(7>>U!6ZQFZF<=BXHIJ(>C
M2))L24I4A4$>'3W[LBR/=^;E<2 (GG$N[!PO$PQW,G52Q[2P%@6(1@&* F$"
M$2(=9A^YZ2EXA *+ZU=N#DSY3FS%:"Q.H!96IB+QK0DN:D,\KP'#CG>%R6HW
MR4G9:K-=O=S5_]2-6=7.:&G2+T:2_^X,72J(8*HC4I]#[0W2(($2;;AV3=*O
MZCA5?>3ACF J)PZ(LD5I#<(@P%DJ5J--]F%8S=B[%6N_D+A^OP5#H1  &;C&
M?.F&QZY(K 16DMV?!;AH1 OS:*8SLFQR[6"O&KM&EA:&&HE6)6C@  YIO4>J
M,;1-N70:5!HW*^;*4O(^J>IHDCX\/OSL:X?)6[7>LZN<C?/T]D=]UZG_M;%8
M#>M(Z?Y^_ S-]WV12+8#GB!(=JIS$'3 *H#^=3(3'',4;*!3SMDNTFGG!$6L
M%E&8+MJNG?_-MWE8#-RSH'K@N$[R )284/'J%;89TV8YUZ9"S4*[?_/YF_RB
MOA[?OL*R)!JF^"3P#(+Z0YI3PT5$@8.L6F6295I5Y7'A@^X;XCGV@:C<T1W-
MD3>N%_,;M4+YI=L-[LM9R?8Q5:?WMO53RM%#@[8V5ZRP3=7F*H+IA,*=(ZS1
M*"AF,G+CG1F/#*]D,.<KQ\+)V&P+&W\4=G,0EHPT,1:0&&ZYA?</M"WO^S=A
MUK@?EWMC_=ICJ, P>#EW0>-N*(ZD< <[(?"@/KVI0IHCQ$>A"M?\B,N!C8-5
MT>=<;JN[84NG(O8.&46CV)S!1[]6M[J9B][U'L;:UHNW39Q>OL*[HQL$'ZA2
M,Y@0E%>$=RKKICCQ!ZD7+ WQLTK#EC,K_;Y9A\)EI\%)!MG!6#USMZMG]F/U
M3*R>B=4SY^WW=RD#B3NYN&!0"W-B ](=%!%--S)MJ\KFB3QZARJ2&%""ML!>
M2H'BJ'UZ*2@<48'0>BW\:0-8+E6BH@+*3IT0+#,9DX4Y]!&NT'ZV)I('!#DK
M'MC)82Q2#1_B,S#L]B.&;KH* #,R-#^-;M6!3Q .H]"]D"!EXKF"-H=6N8E8
M'$XY9752V_(:>;\"*X8HVNNGC-V2(S3IK+T\!W."X&+<AZTA8\J57.+-+Y6V
M)@PB&4R'VQB#97"RH4 >BP]*6TL?!T()4RI2MOXXC+0I#-N>\*D(BV*HYU[L
M$*Z/@%=@)45Q0E%21&*2"#!]G,KIV[\/'&4L!T (>\0&;H( (G7>YS5F0P:)
M<L6L0R[6C&VE.[W&BJ!O)%(K?=_P4JH@LM+ Z1603=O4-N"Z):PL2>;P')28
MP".B'2RVV$8Y#G8 RTJ,!H15"+XW0*.*G[=H3G*Z5"7/E3F=M%J7[E>!#G0K
MEO IOF",ZQ39+^L?#:_G0.)W%?T7J=<Q5= ,?*"*,D/=FHG^,%9M[+X376&4
M<2W>&P[;.VB.;R)M&L[%JK"5TW$.OIS5E22@T?6W(LP6OIZIL'G:(4"Y\Z8X
M4>L C@1CJK%'P%Q6 3(Q[7$,R\Y:OM5N:+M@U,YBCZ7- _:^+DX$/%5*+A"K
M*6D)84R=I1H8&6[QJ%B4!U=54&X>=72F-U!%D55?ZR2P7!MJ113R:S=U6*I2
M%L'H(F8N5_,">HF#59S,]C5>'5XTCH]E&"W56%!A[::T70F ;) IIA21+:+Q
M7T8]Q&ZXJ@>X\^JN5UB5)Q:M3H(GZS@./D)@$2BH$2Z5U>UC?].%%O!\_!Q*
M96!V0J6C_-J'U1;6DPT")!0#$>P2!I*0@E7)0;ABNFH]I'\B6,%.E*GUAWO&
M1;GXB CA%\K<D:61N=XSBS/6[;U6MN%:.L!F#HS-:F-#> "N9A&;CL]N8HGQ
MFFOJ19:6-FF>H^(Y1J#G) +JBQQ3M+BD9<&F&$'N^]R\Y\_J!I$# ;&[FOX=
M*'2.:3I5'HV/,*:&2Z36Y_5[68J\BY&F3KK2M4/"WL@T4))'Z,>^2<'[R7R6
M]*SU&SA5Q/&]4T;G;>NA</>&E_ AP.[$DBU>5H9<%0F+S5A-;5[/2:M(<P,<
M-;[9<P*&?KM 1,^<=7-ALUQ+L*L*JQ,75$]#7SF!>V<$4$J"*V1X"AH!7EI@
M)0?FV)9(G4#5%9F9YK6NBZ":Y3>N+.=7Q/)$<_OPD,BJ)(3/RJU3<LI.A2_I
M\?VPD@E@DXC6#KP"D$Y87;%MG,,5\E%P L"= )( 7=_>=O9]?J#+P4* $KY\
MA@6M4\_!J%6%2:OU,U$A,9'/MS#9"7-%Z$Q)9;B*C,EX4H(S<-^#QXWPG7MY
M);,B6'C[+7< 6NGAJB]:-G)2W3G!1?(J6UV&>B?(M/-F>R.(N4[2V7]'A6?L
MIH%'+%9LI.=+2A=2$ C_U+\!N$;:,<'8=_6I,WQ=RZ1%5+'&V<C*O1/>,V,X
M'0Q.B?)CX4P^E&0;!R]B/B>P:FP9#/QK!QTSNP';&K:[A 4P2N)!8C)W\>#4
MK@SW2-N'P4Z-L\<ZD2L;X@C"*OF2,)-Y(AWXM?B_5FNS^6>WJ2T.==/0?T ,
M+)RV!#MD[DM0B#DZ 0BE7<MR,^2%/5+@DW#V^XUQIA-CAZR/(P[_PKGB,&U^
M=E"-&6>PD)[0AKL,/G#M<D?4MJYUE;2M&.GD+@TV@C?U:7=A!K$1H0DRV J>
M>."J,:.7Y'U1(@( "?5Z!4JD%G-#\E\YM1VHF6".S[>++'\T;B0?)U4Z71LG
M!..'S1-)P)-BJ4[RRG[-#)_7<2T"E]Q[X^O9<Q^YZ*0182'GZ FF-N\H<S@(
MH-JY^M*AC0OX[+H@=-;? BK0VI+#*4$!=-(77)* )(+G%(MV65@X)JY.ER[1
M"O-67"[&2L4_,#QL[8-06QZ5>;86%1<P,@^",>":M$6) =/.L$-^[HZ18B>;
M4%NP' LG8DDX$5V$QB#NQ>#W'"M@1N[-MHTO61%RJ "JRR+H\W$T,=-4%+L2
M1&5_^5@R47T2?G1AV9^YW 5]5K</V68+&C0ZNU'82QEKA3MS?/!#L%0"0A[+
MX(?([["4N-/GZ=1QF*K-K M1*"0.<PMZO3PF=5%1_R*^]]A,ZKP)'3,Z-VS'
M,*4JRJR[KWC.7(C%\PEB?L*M9&F#?Q[1G:HEF>[ N,S]14&@>R&>>^, K 4E
ML._Z4&(XX)SA@%X=QFL6NNZ,L%?HM%%TWW6/5T*<%&S'KNDTY8'7O7/NBFV]
MOXW/SA&42K"M+&)O[Y*1V49>/7C%!)G;<<M_@F^24UB.J%H7ZC,/P/ISG3K<
M6L<KENK<O5*=9[%4)Y;J7+Q4YR&<([J6F6A]VZKQ(;R\TH7,MHI@TXE@#BU,
M7D_(7J6.W)GA4CNVB[N#F-)QB&I_EI!KL$1G"CM[&SLRY[AUK^X%R?;DZY[5
M20>[ [8G&W8EDUFU0%(ID[?I9T)*XN:%[@O.XTU3J#MJN_T_&L(W"*]O6(M.
MZZ7R>7D\=;_O&TR@/J_=&>XX5[@&RQ+TVM:$*;A?E4#?@'!SYU$G+B# &S00
M#,17^03)*H1!LN]['* S5ECI-NVLAUZ='0PQU]FD5TC1_;+AP/;;L%Z"W7K'
M$\!E3Y3JE)(B)F/VA5]!=\'40SN3HR_4Z*K.6/P4VT'3\4_6,I.;VMW99=91
M!F%D#4C,:I-64X9#4KF+L!1,\9CV;-@'XN:<2W%^(H?UDR<B1KG[U:5;0,[0
M[7E3+A:P/I\1^?1A3-[E2_PY:$\4)\IU/P8KBVJ21*EUXQF,8^\WA2?K2VGS
MOS53AO/9&Q&BT]-!$/O%=!.WK= ZINL(4/908KP1Z[VX8@P*44NC*0(/NU9[
MCG[8ZKAS#=F=4YVL7CH%Q<0(+7PM-\&H![!Z6,>'.;5OA0D72]_@-Z6CHJV#
MP+OT-IW.670!P/8'Z[#WB#3F&2QC/3+38TU-%U'/_5U*HB^P QC!7[(V L&@
M:ZPTC0$#Q?A!+O*:4'9U^Q^(5,M)-1I#OE!O=1<+JI"(L/3N2B$K1@Z9&HNB
MXY4 J*T5@PT3#UFQ%L"DG>C1E/RI:NMWP9C/.7/1F1-KIG [\:Q*VXA_IV7T
M=P?77K<K#(G7MEAPJ8PKWPNHPD^^)I/QVXD-0PB_G$Y<6KRMJ]'C/K4QK7(2
MVX2PR>&^.;=^47IWD3>8O81G?,9NTI(ZW'^M#M.E,$\Y@_<WV!L9>/)\5TU?
M_^C-KY]_)3YVA][^1D9,59/C5_0'<7U^JM*%(;+>1^/=T=[C8?*C;0_HJUIU
MG"$7GI6!PM9W7Y^9&OX]\> >*RP]YP8*W(2@X >ZO7$.4WOVJ;LV)H$OQQ<@
M^G?"4.5K"Q2<LX1O=-9!^QF6Z2/B0+P?)._Q\(1%=B#X=O.#*'YTCH:%M:<%
MS&N9GWADQR/[:FI,-L-Q5"8XYY2GM;:)V&T.>D?5F7YQP[83:L<\VLQ#O#O1
M/O\#)0&#0"",QC('JV"MD_4LD58YLMY\&J5[?05M[QZ%9W#E#4WS!:>E]EN9
MVV:L3G7H),@WA2$/K*CF#"M^%1:?$:QI7BU\<M.#JER%-S)P6Y>3R$5)75QZ
M$U/(A>98*-F9!*L)CLTUDX:3Y-+!LZKRJ2+/(-^363>DB<),,9+MLC\N0J&B
M8C4\WZU7R,F.A^J'M,[2/_BMG]^]T<W_1$F&)2R*+W.8*/8!*=G#"HVKF%&&
MGL#Z %=.X#%_:$Q>M=NGV9RT*ZS'QD"6!$5?'G9<$)>[9F#4&#[4>(?NKJQ!
M5*%:A?X]-#:HT,$M&!EW).><>:S#Y73H.E9R<EO,L28\MF'&7D9-AO9VVV!%
M#)NV!TE>3'$Y"7:S@[0),E40,T"6Q,$!!6>)B%P/)@HO&4,L>$[)B9%U8NE3
M>\^(0*T/N%H7'3BF6U5VVOK>.05_P &Z6^\+U5F?;\=ZD':]!X@* !H5T\Y5
M^(E4)DA?B-"5_2AL;C]WJ^*DV ;/SR(]#D/UBE20#:L9S :C6C$##VQVZQ#F
MOE*1SC@?\F:]:;Y*2+00>M]NLN ,I=ZGLZWX>4XDUMOX"-'0Q 4E$WY:7H!V
M@Q7T$ 0,+5Z":Y%&'7T9];U2[4\H<[:@LVYG;*"HRBW?:BU:L$>&+QH@OCU%
M=TME,'JY0=D<44->X1N=[/*S"!?JX/>FNJ(!MY:66(6:EE%8VV;N$ <AC4=3
M!P/\3+-)K1&H*S[$*N)&YS*]%.:9"EW^,AH/G^[BVB3U/)5T%?5.\U]?#'>?
MJ[_2S7]+04V"N<3^,F'P=QSBW\B'WS0X(G-553NSHL4"X\:$;*E=)*UENS 5
M<@#,TBG#)5AL 0^.,S$GI6@HQ\$60H/*S:07,7=LB@ SSOZY$Y* ^12''O,G
M8!O25=:+KZ5L)M;;W.UZF^>QWB;6VYR[WD8]"#YKL8,:9<>P$T"?ME+/TM,$
MA]7XX/MPMW>.JMY=30+WBN9^!]]8OT0,%Q2YM57R\X(GX_/OUY;MUK;<T^'S
M_?'H^<&SIR_&>\^?/A_O?__J&$26]\G++\:L8)R%FQW94S1)I\P*+CDHXV=N
MS=7F"A^U+=I&H.G)RK48A9D["UV?85\]A1=L%&KY_RB.41R_01S)-G(.WZHJ
M_VD<+;W#]\0LI42/./C$[K[BR^6@@[Y=*J]TI->89OW"*-11J*]:J*W080^I
M#[RDR[0XJ1OA'?" LBIH<P0:]U![+RN"@U6"[O<*!IH75"$YX4!9WZL02WU6
M%N1UZ2>>NCO\DUUK*'8]:!PV\9#CYHF;YZHW#]L<M1/Z"TMW%,HHE%<ME*&I
ML0;5,3/@^U*H=VEQ7^IV14G?HD2@; RZ:W(;QZ6"'<ATQ:3-#DVTL:/P7H/+
MMUR6V#3"Z9X) FB0::(J+#RD>\#<FT[_:'..02!$7(/U#(?YE&K:I'0;?O_/
M$@R8!--FE#"AN@7.\4ZIG(S>&P4["O8U:N7>? ^WU4OPGS%;TZ+U=JQ0 OG&
M:@NFRP $11%MB2BU5RZUG*%"T3S"_(M9"[Y1Q]L1"6 @O3JGI!+>5,U9F67F
M;C;PLG)QPA>!D5R8*,=1CJ]3^V*E;(GX*429BOE%S&:6NM ]BF 4P:L600>#
MR^P%1)=;]R7_ W($NFG" ,CF*U*.,TTJXD9B?M\+<-JA&:-G(?:^B;&O*,]7
M+\^*>(RX!I8,5S_+$>C*<Y=%T8NB=]6BQRB]#%V']!XU@:RQUT1Q*\_X0DI4
M8@&&\3N/#=BJ\-]ZCC$OTK"#9&ZR0U>\2:X6Z,W\B'OWX?YEG3ID6V0WR84(
MV$8/2-M&68^R?AU)9\N]BD1'=9<=24IV8?15NW)^F>]CF*3++R#,5)_#^Z(0
MI L5\4HRKC.DBR73)E@Q%D-R6I7LJV%,#3'Y\)(H\5'BKUKB):"5.&E3D"]]
MS/;<$#FIRC1[E41YC/)XQ?(H_69'1EIH7&VUKIHN'3<)M1L2SBO(I0'Y91;N
MABB-K5U<I4*68?YH4Z;E6KN& )B0=JUMY)+CM**W4L,0M[:;JBJKO%XP3A!7
M@MOV-2R/H%&_PBT2=T;<&5=MAUMP*ZYT(QGUFV*6%M1<YW#Y!ZI]BT',BI:A
MM?ID\Z$WL01 ^SJT+L206.A48:,Y]B0RX7%R>KC>\RHR:( #:_%])H(FT.T[
M)EV#W7%-4-P"OUPP\T@W*S5D7"QU]X8+>3RNO24+ .T05J*PU.RX!:I2H'&I
M7=1!%O9DTP@UHJR#(?V()H+]+OQR(20]":8I\!&[MLB M'*#V>=!T!:]= _V
MUHIPH\LFP6X=MN//T]5-'90,R5(W@R"8QU.&1T3>M 0\KLJ-R$G5A)Q<<R33
MDY>9+ 9G&+G_"?F3I)O5PO%-X(,7QC)YTJKHMDQ%YY[;%M(.X9[J5\->7 I5
M$LV?!Z5S9#*.X8_EQ+85TRFZ!FP1.;]NNKN1MW)E++^!;4IVS'>$PN]DR4+N
MV/#+YBXWPBM$ /B\GDLTI2:."U,=6?=S(UN);['U(T,CZK!*%]SM:I9ST@5%
MB6U#IEKH;<2T >=IFQP]?R GSJ_]F3%LC!38AS\)2FCCK!->UPJW_U_&^\/=
M!,93*""I,,GAFA*QOW+?7>NP!%J4IC\WX0DEGY0X6F($[+_\%N&4D6G2B2Z,
MIPW%+,]X"AR 3$95G Q4'W:BZYO<6 B5)+5PGW5;$W.J)S+:-.&N-MKRC!%D
M#1*L\=S)B_$H\^NG'I,N$!= P4UM?M$Z3$!F9(+SL^<BL&5.>Y&>]3#R9?6$
M#[P&JL(#*]E;0JP$/@,8_O2P*H^;^<"!L 2E8T)5AYDV(Y_@*LF*=$F-NY6Q
M?'/KD!)DYE CL%:83,%D"@%B(:3A0$>M::: 9.3,9F;=8,[]N@3/C[!8R*#K
M*;#\H#*U9X;)ZP(Y?@_GIZM5 A<6' QB%S]3P9Y"-Y4+RU2&7$:<OL2(O'J0
M?'!@Q 9<,+T0=*?)5Z#O8__QW>L_/HC]Q['_^.)X_W<DAG +QKU'8^VB/.XS
MO3/CQI [F')>J1#"*TSU.TQ#:V_5<CC5DFS*#/+?U2%,9D0K42O@8$3521]P
MF@4G_=P4F2T(0HIP<(+!R.$\R+JA[,"(!+>)$*-: 8\Y"^73KS^8.7C&P]\F
M#+2%K'WD"PCD!XVD*QH6^\-#M?7CO1(:2LMP_6@X:=JS\)EH_&4FS0H"\5-Q
MF@ZG'KWF,Y_<R=/=IX\FCZUE\#FM)BG<O?/KU\*<)*^GC4<-9YC]BP,+HGV)
M@2="YVP:HO(MKP ?E^"AR!9FT/^LPZ/L(G>*%R#HE "9'/2PP7?0V!P@H?!Q
M=";.A6D4'YY0T"&_6EM(*$?"83[4B(A;)\SW/"0R5HWRU7EB=_$FAJLQUA4.
M2R0!^#D?#V>5"!T&>FVZE IN *2=H@Y2.N@GYJ$=V#H 9MI "?F*#A15#92X
M#:COQE'XD3L=@/ZQ\7T>Z5@BJ)"5D#"&YR'-EVZ-,^(15%PM!"<W@[6VM*;Y
MDA3B&IP<D5B>-20&G&1O_W2\UPU@EO4W@[IZ->E!^A0R^G*=\/$LV->+@ ;W
M1$XW<9(,% ,J^ZBI<SY/"P8$\>T8<3V-40 VTPZB^-$"$ZQ$K>%.P*>M&JQ1
M*Z<MJTPNAD.W^RW8O\P?FQX[.?@BQIN+<W3Z]IE!Q^WK@0!.XF%&5-5B< 1I
M",+N!&>8.5F9US5@$%*A?%(@],AS)3^B:O:R\'%]]4W5T!'?&$8XL*11-K$Q
M.<'B7$]"ZRT19ITHTA,*HU460I1.2\<0-//ZI4HZG1/*AB<6G/..Q=*N*UE&
M51[@P<5JA%B-\ T;!<SN%,SS>HZBC&+$D+H]&8VZM"9(0\3*"W)'G'W><P?J
M4XK>H@W>$.T8&M>Q_#&*\96W7&(VB,_)'D'$J+N3<[QFV9(K'4HKV6WH)<')
M?I1.TZ4C\B/$Z9TI=6QD_A9LCH_"'(7YZON'!1&-&2&M@*)E4BX+<N'8<,PH
M(D7>1)3#*(=7#M0DL3TBO]I9I/]$#@O0C64C$#@I"%(&AL'"]+E;YS-RH^!&
MP;UR/!Q;N,'E$#5R(K/3+)'W28$M.].YF7ZQ\788T<Q4&*_FE($KE^JQ)SA
MT#)\N H)!YE\RA765/\093S*^)4[;A@96EH&& 55UA=RFA+2R,I02!*!( F
M#R&B8K][E-+K-669.TUK1JFWGIPDQQ5R42XI.VJ6W:1BG3B G.#.6G(7S.O"
M-*TLTWWR'\4ZBO6U>F@;@@Y(O_>5>GZ+$UU**I6, Q!NS$90%F!E$+$=C0VV
MB6/K613;ZPWV9D=D$B_!EYMVJD PIH!].TO)\N+/%,853K#-6% S2HZ46%4&
MNGB!B;#*,J9QZ6]*P>!VQ>H_,%.H#)CJ;;3&M\;*K76[X=7;F^<*:L2E$N@0
M\Y\(+".4S\HU5P4^X]T]6]WCDI\_2^/6&^6I_Y(>VV/9@28F]EBOPR4LCW'$
MR6C_>T(&*RN7J"S;AJH)\,\2/V WB]J5%J8ZE-P:]0T?Y]R#-LGI>521T+(@
MIM*1Q6.O#!=CU:IC"[\HHZ##4L;M:IM%IK!(' OS:*#Z#_@B&*D4<I!)LCF]
M83D6U?1BA&Y6M5S\KC*%%%*^LK3P!-E"OU"-1--)0=,4;7KPF0D;5Y58VZ[H
MG%CC<=I7*\2 M?/;>90F.W?H%[2(6)0!5R#FO?H"EZ2W<W+1PH9+E_;>O:J&
M,_/%4M^+UL:T:&LLA8$5:Q?=K/$:*::6$Z%@U\T?Y80)P9-9>@3O0DGX9YOE
MY$+R"V;28-IB':5LTANO0MAN_?RQK3#XU-AS\[251 I[8C@\]MH'%@!])(FW
MDB)S1S'<C^4I!94W-6[=N5?H#;R-E-<;ZC:I7 \7P7]P0:EH_9PK0>M2>!>[
M<H3+_&CTF)28PG<2+XZ/_*DQI-LG%?;#4*L7Z1@S3XO9('DTYMOE'C!@367K
M)XHT)XIY-,:FQ X((I=G+0@:C#IK,:IQS*>9T/)1\Y976A;7SU,O@TXIRA/#
M)9NMHXK1 @]CVCMC3&F5DQVS4FN(-[A])5-J)7X;Y"V)K3IWNU7G16S5B:TZ
M%V_5>1BGZ=F.RIF)1SD*I, .3[:G9QP#77?*U1.GLUF:(Z5K.6TJ6+5SU/;-
MN&+<<I[9DG\\5.!,XN%A92&<>=*$N>8643EJQ97Z)SP8;)U K GNY-Y VYL9
MY()W]=KB^),-D5ES@_].9=?@5AR67(PLI]T56'87V>;;+8F77&F:6J&2@9,6
MQ&9*=GG5N";<$*4-?OD:O&-XB>,B9[ZN=1,-(4(88I.H\["@'XOD0XFFPG-<
M=)%V,7%\,_MG#UCR>MI8'Y??XDU/V!FM*NL_=2:("/Z:G8[D?^;(&AX$,V1:
MI1.(X0)0P'$=J+UA.B]E"ZSY2T1)36AC!=:"%3DW$=6&0/NQ,0+S;A47^/O7
M" %0QL_7SZ/&"8JQN1$0L*1;FW#>6?74U*Q!T,!(#"=R0R]4[1[+LMLC[@4*
M \+8B$%E;3-NNYJ[<:JD8=^ PW0VH_(@&,W<D)=2&_.%$C&5UI:T>-0N)[8X
MC&@IJ$*P#6 K6\"B/CGV(R#X QH58O8PMSLVUI$/ZYNYCO+#$KF[,<1.<\G(
M%;ABM@5G_6-/?[-3H*<(->Z+G.,]KDA&M9"I9ACIZ:SK<IK3EY/(^KU*GRB[
M$7<3S=D_011JD'J/K="<CI_0"?-95>'D$7TG%@N>>5R-GE<1H)&]T*(:S7*<
MQ)P=JTVS=BY-8#N.L($)+L'-C=@G2[="!;7"4,^%BV@2.L5RBER&HE(O--,6
M=6GC%L.#D[:S[*L2(V/-7'Y)1:'AQM- )S7&(DGZX.P-89=Z$90&KDL(A8Q;
MAQ@]"]%IJQ)3]"H:M@TG7;*-Q_[66/'1J[X+7O6SW6WWJJ-+?8=<ZBMIJTSR
MC)/X_QC_ R$;;;O\/\:WD)LX7ZX1!IN,A^"AJ.;^SY:@Y=T?P:FUX>O@V[[A
M;+OV3R2L3F\G#)+?V5WZR!%NML7>@^T%9LA'C:3V[H_.K;VG9J<B T]-?9#N
M[ V?C0Z^=P<$7;<WW-O6ILUK7XY'Z>-DH[AMF/!M.&^NP&:Z/ZVX'^"/_;&C
M:]D.=[3G_7S[8?*XJY$>@IZY5HG<A@'UZXNX/2ZZ/:9P7%S^=+XI_7R[Q9#A
ME/U&L7Y7.D4AF-IP$6 S=X!7,"L4T\FD^FK0@];9DW=X>5-E/7U3>HMN"3@D
MR0\RF>M[F3Q(\>=P>/A\^!J\?*=(3\I6+N%7C79WA[O?V^M!3HIT59N7M5FE
M6&46^F9TWW?T?AB <V\Q1L?ASY?V ?8JN"QS,T8OW'LZW#MX]KUV/JTS1=[G
MDTTWCH;C_1>7N>\R]^P-1_O[-_6RX?/1C7W8>/CL^<U]6%RQ;5ZQ'YXTU=IF
MEHC1 :BO23K]<E@AFM>.'" S^I^N;N<H%?ZB_UCIT0-AS&J78E/:R-B%7V B
M"&'-1 &S4EX+;:H[)7C$C^N/LQS<RFEPV<A3D]W&S/5\YC7.I,1X;W8N093Q
M3W_];OS=M<RK"Z7:\/NJP>+'/$NL_;6U,W]I4_M\QF")I)P?+#;*#Y/JR;]_
MIJ(2^J<UJ;.S72?\=/!/GN^CMW%1CV!_N(?6]7IT]@*>P.CQS>[54V2*5?+N
MWO9*5=2-=V8NHVZ\)=WX&BM_#DWR$>$761VF.;G#":G(J&ZV98M$=1/5S9U7
M-YM-L<2;8?C+M$Y6*7?Z?"2<]>*$?O]:*)/XJH],Y!*5U+9LK*BDHI*Z\TKJ
M+<:2J^2_A79#*RFJ2OU[RKKH_YDF^=%T%-?OMN0\4%#X[T=<HMK62($2_;AM
MV&>G!2(ID;(>B9S"7,VF&R*1YPLZ]G[/C40BKS4Q==Y->8%%>[VJ\B(18IAD
M)^&?+9_-9;;0/9W[6SO6]8N7Y3V9S9N>N.L2Q%[->IV326^_9KUP,!Z-HZC>
M-U&-.O..S^9]$<2H,Z.HWA%1C3KSCL_F?1'$J#.CJ-X148TZ\X[/9KC+SS^-
M?]E6B;R'RG,T'KP8O8@B>Y6Z\Q*AZE.+9F.H^FI#U7]/3U2@&G^RA.;;JGCB
M47C'9_.^V&3W\ 0<[PY&+_:BI-XS28TJ\X[/9O0>ME]WCIX.GQ]$B8VJ,ZK.
M;9K-^R*(]U!C1FOS7DIJ5)EW?#:CM;G]NG,T'CP;[T:1O>58]?:555^R/>+6
MU<R5J'#^_[^U2Z."VO3C%A5?7[JI(1ZL]WY/W$$;\-O[L>[-F3P:[#U_OLW2
MOG7ZY0[*^[9,753-T2N*.OH24?H73[=9ZJ.*CBHZJN@'(ZI1,T?K^2')^[9,
MW?U0S=LRFW?9-GXP^G4\>+H?,P:WG3&X@NIVS8Q ;[G4CH '7FI]9)[IL:/A
MP7Z'!V/W%):&[4T?$,#;MBJC>#Q>B2TW'H[1F,O*%ID@HN]RQ;[+!:;W'IZN
M>Z/!_O/;/UU/79+HOT0%'17T0_1QHJ8.,@ 'VY8!B(HZ*NJHJ!^NL$;]'"WI
MAR;SVS)U6P&'_G!BVEMQ'L8IWHX*^3,I$-WN&3V['C:!;=%"5WJ$/AH]_C^O
MBR+@ SXVE4D6:682Q5&"#,$KX2E)4LM1DA!;L+H[63$?P#!YOTP^E$>&>%#&
MN^/Q )ZK;B2> 7SHI$RK#-^0Y969-F55)^D*GG($%Z4;GS](6J(A@,^?SO')
M-.BT;>9E!2L SR_U7>T*?_&7\7X"*U#DY;*/]'B8(*GR^KL2^"%9EHGYNLJK
M%)GMDBQM\&,RF*:39 *S56;Y+#=(K]S6*P-#@T^JX)-JG.I\V>+'-'#'2=+
MZ@\OHY7NON3>@+:!?R =\[F^[4H8U9,\^^MW\%F+?SS[A_DZSR=Y4U]RPUX[
MS?I[&&;R;)B\.YL'\A9'*9.XU6-, BG,\B,4OA_@OW:D?U*2\^O+\:M98;[N
ML&Y#3DSXA':Q? 6:856D)R_QKVM;=K@/^Q-?;<]+^%$$SHZ!;MP!1=/#MJFX
MB9UK\O6Z][L8,3KENVM_$KUSV8/LJA?OV:AW]>;.3)%AY\LB7\*0&C@"F: ]
M_ /,/O]ZE1X:MEAVTAG,PLNT.$Y/:F&#UF(1JG5<9B\HG07?DG4E/7Z15;VY
M=>PY#_1.G!9I7>-BPNV6HQO_"S^;ZKON1MWOF?";V3)\A,C9\0\:S;8>(.]X
MD-NMFM_C#&JIN,XU='; UFP"LH+(".HKPR%])=H#AX?/AP_"RW?@/"I;N81?
M]>+%</=[>_D42<-6M7E9&W *P  .%0'=]MV:RW>4UR R1=Z<O+0/Z*M=XO<=
M#'>?O?A>*SJ[<4G3/=ETWVBXNWN9^_;VAP<'-_G"%\.GST8W^+[1[O#%\Z<W
M^,+GPQ?C@YO\P/'P8.\&WW<P?/[BV9GWG1;\.+AXK=^9L8\;<QJW@2SO>JD1
M.T?<UCGH5S6W6Y6 O/,S%V7RCLJDBQH_OV$*VH>J7]\OIV6U*M%^S)+)2?+)
MS$QEEE-S1^AB[]T.V*K9O?_R_U->F.S"&;.[8C1V%WX<*;=EW3^TF F[W6TX
MWF(M=[VSGVS/Q%^\!.[N3OM;4T^K?(51U>U9@"CY6RCY]_\ ^*FL%MNS%MMO
MAMT#LS<*O[9ZDP_E#=>]Q T0-\"6;(!;">%%^8_ROR7R#P< 7).\39M;#O1%
M3V +)OYA[X7_,)4YSIOYC>#$7&,8\"*P,.=;U2LOK;K.YK/A:&L3<G>G_^!:
ME-(E!=-UR-Q0P5B:S"LS@]W=-*OZY9,GQ\?'P]I,AX?ET9/7U72>'YGZB<D.
MT^I)EC;ID]'>_NC9WK,G..\O]G='SW?'>[NC\=[XX$D-#]TQ7_?^,1K.FX5+
M9>[ X^#7395.FY=287C*<J(2Z5M.&GYFIB5W/[RDU@LL@954YOF7^_6">R.P
M=>*3J1O* K[!U9O!^C4&VS)\AE"'#=/;$Y&XQZ+R[TSIP<Y_QDG=9A_MSLWD
ME8KG[NYH9^]@M'LIC-Q[-[512+=22*_)@+YSDQK%<RO%\_6JRHMDQ.1@EZ(>
MC:Y>-$.O5T;[IS2&D.[(\NT-QP]3K]R+(^^&YNU*HD1/1T]'+WR4:$Q1HEN,
M W5"/F_FZ?*0_O7)'.8U[#N3):\/X=H'&O^Y%QOD_BGLT>[.?\59C?*YK?(9
MXSY12+=>2*_)ZKUSDQK%<RO%\W5[V-9-,MI]R(&?>R&;]VK>8E#GCNB/O>$#
MU1GW*UA\EZ([S\:CO>?=&J!MJ_+Y\:1(C^L'&L^Y7WOC_BGM6,]SC^R^K9C)
M&->)0KKU,QGK>:)X;O%,7JEX.C*"%P\YL'._#-'[.8$QU'-'5,K>*/: W0<U
ML@4]8#9X,[K]Z(VOS1&>G(]5OISFJ[1(WGTUTQ:A\9-?9W %'*8?VZINTV6#
M]#J?V@)F8+27[HR>/DH?4_AGM)_)3\S7T\Q-\AD>4N5-#A>_^SKETI_74V(9
M&KW8>SI VJ'76;G"J)%^_F>FT$CV=L=X+3TJK2;ITM0[OWXMS(E]RGAW=SR,
MD:;[M3.C01]G,LYDG,DXDW$FXTS&F;SC,QE]O <HC5<ZI?\;@T=W>?GV1@^U
M^^O>*I;;#QYM46/76O#HIWR9PC_A7S%X%'?F0SDSMM8 C3,99S+.9)S).)-Q
M)N-,WJV9C#[> Y3&&#R*R^>"1^/AZ-^B9KE7FN6VHT?C.U9ZA!&B\T:71@?)
M[\//PS=#%P<:[>WOGADL>K'[+ :+'MQ&C 9GG,DXDW$FXTS&F8PS&6?RCL]D
M=.D>H#3&8%%<OE"UC'9'P_<?/D<-<Z\TS$T'C:YM4M\O*6+TOS]^^B5YOZR;
M=#DUR=MRVB[@[\DC#,'D]M>9_756PB<LRR9)5RN35G %Q6K>XY9*IQ0M>ILV
M:4+TTQ,S3=L:'M/4_)HF/:R3M#()]H5G"%B$K(SN&7X\]GV/KX6_.H9Y'IIV
MWUI3,<YDG,DXDW$FXTS&F8PS>;=F,CIA#U :8Y@G+M]ZF.?SF_^(&N9>:9A[
M&>;Y+?U:+LO%2?+N*_RUQH*;S].Y6:04ATG>V:C,+_GRRR2M?3BHONV5B:)]
M'[3OUIIR<2;C3,:9C#,99S+.9)S)NS63T4EZ@-(8PS!Q^>SRC7:?1KURK_3*
MO0F^O"F/L"\J/33)K*P6:8-]3VD=U+I@5Q7>D<)O,BRH>?=UGD]R),2\=7J/
M*-3W0=MNK>D69S+.9)S).)-Q)N-,QIF\6S,9W:,'*(TW&7:!?Z23PMR*$[CY
MR^CUS^#MI[WP6_9G_-K;_5IZ_;5_+@TS7V9PX<N=I\/G3U]\'VJ+I\/]O;WO
MN^-2TS(^8YC7%_FXZFGZMX3_]U,+%]=SDR5S4QFJ2,'8"'8;9<8LX/=-F4Q,
M\J__<C >@U3DA<GHWZ-7&%U)5FVU*FL81#GSH#,'%DY&8Q</Z,'U/"T*>CP\
M-'A#OIR6\*R*:-0G)TEE9C B;(3*EW!%NCQ)X.WP8?TPR?2&LEI[;?+H>&[@
MEU6R2#-LCX)1&[PPG37RE Q>:4?\4UDMDM'NSG\]'B1Y59EZ9;C#"OZ.0S@T
M2U.EA1HM?G$!;VLQX!3$E.IV.I<QNY:J;5C[Y)IVQWU2&D^R_ A/Q!_@OW8\
M?]+T?'TY?C4KS->=+*]8X%_"0K:+Y:LLKU=%>O(2_[IF8@SWP9[ ]]ML!OPH
MWVT'0C?NF&7V"K943D^N3)&B^+V:E%_QJ_%+)F4%\@\/_GI#]HA<P0:5_4GL
MI&W19\_&O:LW=TDD&79.0>"=NDFKYF7:-N6K\ \P^_SK%6QGSB?MD*9XF1;'
MZ4G]ZKLG7;$(;5!<9B\HG07?DG4E6_8BJ[HU.W%:I'6-BPFWRTT[5N=6WW4W
MZG[/A-^0"9_DV5^_J^$W:=/"*7+)77+,HC,IB^QZIOOS^Y\_O/[M6PZG:Q_B
M[Y_>?3[SP#KS;#IS0'?'=-,0?FBR5.:/%HXB*AEV.'YG\4?PC8=YW53XJ'E:
M)UE;G"34/ XFV3ROX>]@X#1BGJ$LPQ_ V,'.\HD!.VZ&9AH^B PRN0!-+=.B
MQ4;/ UTZ+RN8@6QX1ZR.;;#*R!4G3[QS?-&4T/DDIP6.#!\-7X:7[X#]4;9R
M";]EM+L[W/W>7@]?5Z2KVKRLS2I%6SO4_'3?=VL5&$=YG4_ D&U.7MH']%51
M\ OW7PSW#K[7)YO5U'2T/=ETW][PV?@2MXTN\ZIG9]YT:B7*>#C>AX6_PIJ3
MJPS^W>_('[P'__37[_:^N^Q,GB\$N-W3N';NGN^\__7W#V]_^X_W'_[S_8>?
M!\G[#V_ZP3Y.E?[]X<'-2_\BS[+"?-.RC;=@V:XC[AUG[YIG[UOUQ0.>NBAX
MT9"XS35Y"R;NR^1U>PC&?C+:&R3CW?'^E4OY0YK1'T]>;IV"O3.3=_4*=K/H
MN7BB!*"?@Z9AKH+$?LW]F^ G]9/D4UJLYLGK8?*F2*LO=T0IQRUPSJD;CAZV
M_MT^\_8!3]U#$KQO5:M[P^=1JVZK:$>M&K7JUDS=/1$\NOQEWL"3IA?)[U6F
MSC$A1@53;^:YF:WS@GU3/='EQG6)\,;^<!0#Q7=JZ\79BX'B*'@Q4'R?SN$8
M*(Z!XKLV>3%0? .!XM<%//S3,/G<F..T:F)(8ZM6*(8TMDV%1-&+!_\Y9N^;
MU6I,P&VS<$>]&O7JUDS=/1&\2X9D.3C\4[Y,E],\+;K!X?/V^&]?$\;6-)S)
M>&+KYQ:W?N[=9.OG#T\F97;R[__WAR?S9E'\^_\'4$L#!!0    ( *Z##5M6
M[0M_!SX! $PA$P 1    <W-T:2TR,#(U,#8S,"YX<V3LO7ESY$:2+_C_^Q2Q
MVC6;DFU2=:BE&>E-S[/DI:8-B\G'0_TTLC49"$0R,8H$L@$D6>Q/O^%Q(7 C
M 40 8-':6E5%(CS<X_3PX^?__K^^; EZPE'LA\%?O_GXW8=O$ [<T/.#Q[]^
M<W][M+P]N;CXYG_]Q__X]__KZ B=GE]<H2O\C)9NXC_A4S]V21CO(XS>W7[^
M%OV?XYM+=.MN\-9!IZ&[W^(@04=HDR2[G]^_?WY^_LY;^T$<DGU"NXN_<\/M
M>W1T)(B?1-B!GZ-3)\'HYT\?/OUP].'?CCY^?_?QQY\__>O/'W_X[L=//_[X
M_W[X\/.'#UJS</<2^8^;!+USOT70BO8=!)@0_(+._< )7-\AZ%;VND 7@?L=
M6A*";J!9C&YPC*,G['W'B7Z)O9]C+D3B1(\XN7*V.-XY+O[K-YHH<;@/O&3C
M!W_2L6*B0-\??OR>#J&3))'_L$_P>1AM3_':V9/DK]_L@W_L'>*O?>S14288
MAB?S@?9K.BU!_+.71$?)RP['F9Z_/$3DNS!Z?$]__1Y^#3W_Y>C#QZ/O/\J6
M+N4NB5Y4.]8FQNYWC^'3>_%+QK!L$,>)WUH^W@2[WE&\?RCO0_PRTP?]6>7'
MF0_I%&1X>?Z>R?OIPX>/[__/YTN^Q.3'A+)8/C[T^^_?PZ\?G!BK,<5^.1/T
M%UDFZ"^])/NMH/K#>_Y+_5._A@>ZZ!.Z#A4/.-AO/Y51_O3A/?Z2X"#V'P@^
M@L]PQ#9%?/3I.S7P<92RM7;B!]:8_C##_CX^>G2<7?%#\8NLK(5!%$/^\:>?
M?GK/?OO-?_P/A-CF\+>[,$H0WR.7H<L8K)$>_G4DA^ (?G3T\1-=J]]18M^@
MH'1W58S?^WY,R+70B0FUD+HR(5<-]/Y#5;^ERZQ5CW'5KF)[$?Y2VV=A+Q[6
M:>GR>H])$LN?U+)0OCI;LY ;ZOIMU&+H&_9A-[Y*CFOV[[C5&BP[[+NM"_WX
ME_]HOSXRET?'-2+/*KX^Z+_:K0UUQ VP'^C==-">2"^S;IW+VP7^TKYC=2=U
MW@G?OW<=XNX)^^SHXW?E!UZ<6_Z%5AH#3A"$"?L%_$C^<+?S@W7(?T)_!H?E
MSU%(\!U=L@C^<G]ST5*_>)\X7\(@W+Z\AW;O;^A__I#JI/QS&7AG0>(G+Q>T
MUVC+V/D&^51M:/^Y9%:RZV&JG?I,L'_]X0/HF+H6J_[J!![BQ)!&[=_?YVGD
MJ.]C[*V"_V!_WT54Y0SX(%[2'XC&XI.:AMJL'-0N9:NRF?BAG#-C,WE+Q6:J
M[TD8>/2$Q1[]"WT3^![]N7?L$+CH;S<8)_%]X.P]/P%]6,ULI^;U,_T19EK1
M1?"D$*213AL)XHA31^\4_6_?)K]Y\@^8N&LGHM]M<.)3D?G<=VY=/_6?.DY]
MIH^WZ1]F[ZO?QJOU:B<5KL,/@28Z]4OB^Y9+(NT%A6N4]O-V+@QY+NAS>1)N
MZ1AM0"M_PI=AG%\:@U"J7QQ_Z;0X,MTAZ.]MD1@]/6Z3T/US$Q(/1_'9/_94
M5>MWBM31JU\P/W1:,'I__X)XCV]+QNB2.7'BS3D)GWO>-R5DZA?(C]U.%-H-
M8OV\+8LNKTGEN%A%CT[@_Y-)0Q^)ISAV(W\'_UJMC_>Q'^ XUM^5AS6LF?J?
M?OKA+S_\ ._*U(ERA'2J[*&IT85YEY3?9OK@F;[=;[=.]$(/<_\Q\-=4<0^2
MI<NL6930-=UHKH_+Y[IETX;9_K$PVX(N._%3RB@EC23MM_D^>+YO\!,.]O0/
M N=G^O/R*:[^NF%6_[4PJX(4$K2T7[Y-8XMI3(=KZ5+%)V8,Q1_YK%7]LF&2
M_JTP27KSMUDY>'.=.W[TJT/V^#-VX-],,2G=6.5?-LS73X7Y C*(T4$ZH;>I
M.V1#_1*&WK-/2'XOJ9_73PM]S>2G1;9\FX=#YN&""A\\@FMQ&<<XB:]P4CC?
M2K]IF)^/A?E)J2!.9H$HH;?9.OC .\6)XQ-XX.&(_BUH-$,+):[\4.Q.K6$%
M?"JL -$5>S3RSEK9N*42^G;"=M$\F>)W[43)RUWD!+'C,CVC0O&L^+AAIK\O
MT3NYOLE((9W6VQP><CK?X#B)]FZRCVB3_+&<_67#'/VE9(ZTYF_3<LBT,)OH
M#=[M(W?CQ/@Z"A\C9YN?GXJO&B:J:(AA=%!*" E*;W-VR)Q17>,BH%\R'\LU
MCFXW3H3S4U;^4<.,%8TIE SB=- [H/0MVN$(,6)ODW;P'<9]#G0\Z5#X3_B:
MJ@;E]U?IAPV35[29"!>'(H,8G;=Y.V2SB5CWX'$9T;O_D3^0"^^*BJ\:9JQH
M0%%TD$[H;<8.WFDGX7;K)VSTE@$\ ,#PBX-*8W3=]PVS6#2K:,28NR%#[FTR
M#])/\".,(U49PB@IT1P+OZ^?K!^+QA9! 2D2;Q-T\&YKY\H9P!O4TBOT8]%F
MT]XKA-[)O[VY?@]\XE5X>^Z<!R*GO?WG#5-<-,K4N(C0.T[T;48[^XK*)['D
MBX9Y*YI8=!IO$S6P^TB?M@.^;YC$H@VFPI7T-I^]?$KEFR[WVX:Y*IIA9/NW
MR1G*T50^3]4?-DQ9T0Y3[G)ZF\ 1?$\U)VI?F@W+HFCAZ>N'>EM PUE@R\^
MND\;IKMH'JJQQK[-Y+!FV9I=7O-YPXP6347E)MJWR30;>[ST/,:V0[1<4W&6
M=HY+KB5:OS#^M6B6:ANS#.\GU;&>.HO>B;[?%I$I@];!RV@ L@T+J9?AZVTI
M63*( =2.MR>8*HH;\/+$%W1^USB*L"?:9%;1H!0;%M!A9K4C)#MF*BCO&E$M
M5':N6K\M(5-+Z 9OJ=X/YP>.V):ENL3J@?B//'/V/(S _Q0Y;K)W"'GASJE$
MK8NX^U(;JN>&)5D6E-5V22H6D<8CTIA$](<HPR92?,I^XK?5.]G5^W&\Y?NQ
MY?HM"UBSO'X_OJU@$TE/!RN W2@UK*^B@;=^?;TI>:9\9,WKH4.[AMDOVHHS
M_K2WZ38WW>HYMXQC^K0"A]=JK;QJ=^&%!T8=@![E-OMEX%WZSH-/:/-*O6OX
M#AH64-&JG%M V@LRY0/^I?G\DA"ES @7!3-;:/R\+;FAG;L'WS^'4VE8/"4A
MC!6.X+>#:.# U+*I5 >&L@*HSP"?1X0A N!&['L"6ZGY2#+95</Z:IVSFCVG
M-$N$]CT##9*,H0QG;^?4<$$+);8H^:N*!79 R_KU\F_5R;35MJHT'.)MW@>*
MAT@GLN27%8N@*YF&%=$V?3>W/@H?\7B+MQ4RT HYY*ET:/.&%5$T<5>NB#>5
MQ=I!<;Y/BI\LMQ"3_\\#%T<'H@U+IFB";G6(\.X+WR*=@[?%U&TQ=8ZU2E>'
M_,D-=K'_!!$7(O<';*E-UY7U_AN6:-'*W#LX++N8U8]3=E5V$S"<#4Q\6]3V
M(Q/3E74=X9WC>V=?=M 0[$*K9(.CDWT$",M\HNKL!)99:%C:10/WP$M;\(HD
MLVQ=,W:1X%<J@6_K>JS#FDW'91@\)CC:EJQ@6YTUK-6B.7[@M<J7)?!V!,R]
M+<Q)'+CT)]$>5YUV52:V"?#1L)P-A)P7M I@N.[H?3/-F450ZN#%[D"H8:$5
M'0G5R$MO#_/!XW0T *5#+#/M&S9,?]'.GR']-N,#SW@YHM,A4]^!0OT:^*D$
MFZ$"+^IM.=A(:$H]?.%VM^>CLUH?.['O0@Z$3_;T>"YM6;%D#/72L*R*#H"Z
M-*JL&S%EB>5< %,\&8.S59^0];84AUN*J8(;)+X'H^\_8?:K>+5/H(XI%%<^
M^^*2O8>]B^ D'8W5>K"E:IR+AJ5<]%PT+&5=T:8L'TF>^1<QTKA&DFUPB6J,
M0]NWY?Y:EGNFQ-II.]1 >]PT+/^B%V9"RS];O.YM.PR<CYLN0J84KE@BY)*^
M!Y_HIW6/U<[$&A9CT=]2D<N;78=<I>4](MGEVVH9>+4<;-(XF$C#ZBBZ+"I7
MQ]M+9LC[M'Z[WP=/.&8I/'$2^2XK,T;WXSV5(%X^.Y$7EQXIYL@W+*.B-Z'5
M(2/Y0"DCXN!AK"#.2WK\'+VM-K/7%7TY@A5_"S9N)K4P=]]@-XRXSM2^YFK/
MV\X(+PWKN"TV<=EE><081CK'TEN ),^HV@M175'V;<D/!HA\B.'P< (-BZLM
MC/+;73OP4J@!33YD070ET[ L#L1E?EL=0[L8<M#,!SD7#FE;NPY^_- "\OEM
M[H>>^_U#C/^QIV-P]G3H_7!0VX:Y+X/#D=01)__5SSW\YP&<:S -)/BS,*9.
MY$++&[Q&XJ_Z"OGR$)'OPNCQO1\D[SU_^UY\\]Z!DGA?&(5-A->9):4:?:+;
MDY'PDB/X^W=?8N__UEHFE-V_?A/[VQW!W[P?B#/Z=Z@:'P9'=.R</4DZ\EE)
MQS37(8!"]&<Z0\8,SZR+HRW>/N"H*\-E-(QPNZ%$(W?_@(_4('7DN892'\ZA
M8QQOG>_P/@IW\ ?K^3T]<=9*BF=(:CP*G"@*G]L,.HDBU1:('XE_4&D^_MO1
MQX]'GSXRF<KI=A8GUF>"7BC?*R9B<,#">7;DTY=;48"X. 6TM79\'GW\CK-<
M3JF>9<EOV=CKD_X3O_,"_ C/S$OG ;<X[F"L]6:P8GXZ^OCIZ../C.$R:B;8
MO<-1C(?EN4BR.^.'66+4"[\Q7C*^#YP]O>NQEQ4[CA/_2';!A.I->!K"EQMM
MAAR%ECU8&([V?((I*<(;.)>?F#^R]8 ,V<?T5LB)$V_.2?AL;(%4=V!A,(QB
MN-0/DX6NK0Y@YXSOML/4LX/I#$;[K-9!AN;0[JP.E/V,S;9C.A9GMJZ \7(+
M6UP?8S,WMSU0EPAG<<$WLS'+U7UX(I?M)=Z5P^GIF\R]NPF)1Y^.W!]L2O%L
MT=-H&JBL--%%A<RVM;_A^A=;.&CW#-6=_8$:HJ# 04,U7(=6-\80D/EM-])P
M?4UMB :#A!]P* ?FZ;4-^<<ICGF>*?OG9D?H[8..REY]C*8V]!F [A3MKX .
MP+<'S7YG^E9GWBC::]O%8H$)JX-Z"&!IVS$ZG.88AVH7((@#S]3N75B^VEM#
M'[2_F \D:57@+IG_;27O3MOJ$(R58MQV&,?ES_YYU#W?[Z SJ6\WTQB8 0_I
MKN2M;M;!$[K:[D)#'4]C%5G)3QIZ=YKDTJXV?W@.36L=O2OI;@.P=N('%B6V
MCX\>'6?')<78V[X_^Y) ],L#P6?!?JLT_SC)29,)!BS0 S'?8Y+$\!,@'C/)
MF=30C?5M%;I[&%/YYS+PSNB"A96K1K;=RC^ T.C14YE8MPS20;^(J6:ZT_1I
M&/!;3-TW8<3_,$'#XE#&P]$-A!^[60$_CC<GI?:E(<QYHUJ7#K<=326,[8 5
M5-=Z1G$@MJ(YIF?[&\B^-[X-KZ.=;D*VN+[VMNG8U'J:O*;U9![@/3N=Q^8!
M1WM]>_MS4P,7<. 4M:!D]SC(9;T?<!!4M)SJ8\+HHV*$QT6+]\"A87XM"4U$
M2V\GW>&41M'8#YVJ\G9C:^^'2M%(8D9Z?*?E.%!OXZM=A\Y\"R+34,$Z36LS
MH;%WZC"6_XZ$QU^N ^#,]_.L#]7_!(;2'G#T1(,9*OBT.C6=<=':CFG/#D9]
MU P4:=2!JEVQ#T+ :BUV!ZKU8A- [+BD?Q-?@QB5("+?<RGA0T7=3Z"!(I/M
M%8,/F&Y@#5-*=1RZF4_IOYTD+,&K:>D;AI^DKF'Q@S_8F5"(&] L&<<OZ2?7
MS@OSQ$+XAM0:P$3(8P<@R>YNXP0\1BC^E85_7 3TX/%#[^_8?]S0?R^?<.0\
MXE\H_>24ZHOJB2/E8@/UUV^FQ]_[L:9(.D#I #SX 9<_]4>)]^])J,4-Y,;P
M  )=A2SN2?C)'W1L0:ND PJ74LQ> [0KB7*1X[=5D]&F0::5TF,B?,'X& =X
M[2>Q2"NM&/J&1J,)0Z]$&&4><W+CQW\>OP#PW?*+7[6(ZEH,(D:,W>\>PZ?W
M'O:Y!/0O*>/T'W_(\ \WC.BMQAAAT1,GL$:BEY/0RY\B;5N--@_7D<B;8YX*
MKM]=Q/$^3;O-34--@_$.*.W)?PD]P!V;P<[+'TC5#483HLS6]G<_V=P'(54I
M(H98<1'0YP\@6-"]X!.?Q\G1?]+=3/4>>!#%,G/CI>Y2,]/7:$-']U9$!:&O
M/?[G12 -/_1"!EDJAJ&YW93NW(I4'=WIPS-9J!A;D*(QN^?E8_L+VTCOHPWO
M7<06_@L[Q)@N$BG5"Q21O(,S-SZMFP^LSK1&EE@^Q"QKM$S!.9S(>+<3/::O
MG&V=6I#Y9#1&N;)?,>H5'UE56L3LJN<X:"#[_)@V?C[P<BXY9N"^>0S\?]*'
MD0!7<Y2]5&VT#,P:_1U]7WD9 *$4XRDN@#R5;8EQ&!EMM8H8>S#?B3.@?N%6
M?S^:")V?Y>+QK=DP<R_OLR_T >A#K([OXIN0D'480<.A[0/=&1GQT59IU4PM
M8'?X2W),^_^S\AUW$)&!CQRJY6/ZIRMB9L L1_^9[)G=.J#ZL(YAK1\1[1J.
M.C7PKE1OLN4^V801G%\U\U#58KQ'$ #EXTO_"0QC66^9#I(HSJ'?L!.=A_O\
M?/4D9M $)4)&?@W!40(J<),!JMA@V*F)HT2;%OJO=$KH/^AC/_3V;K**;NFC
MD)Y")7I8Y6>6U!N9G7-.SPZ'<%OJ.?U9F6Y3_>UX5S&HWE?TB5W0ODN/HM;-
M1A-(K-CS*-Q*=0<L"R?[.*$G:-2@:;1M;55WOMU@0N!V=X+\AJWX:. CA,WV
M+WO? Z,5-[8=[Y.K,/D-(@C"'<1Y0TC="_]OU0W<C]9X5YL3;T!3H'_ "^K)
M(4QW2$Z<*'JAND.=H:M=V]%$RVE\5WO8NZMUP<TN_.E:*$F"MTU:^T#$1QL<
MA<;26K6L:S'AIVMK@XSIIVM[1J:CY]8Z*ZJ^'N_9*I-M[VK,TKF/9OO&9C[L
M>#0'?$<NQC-V<M[CNU!L4KFU,94AC"L-H$W-!C[YV&[B^^B4)6;Q@>7[*P>V
MP>8!XARTC ?]\.I,:_P-?$G'F%V439LX_7!T9Y(6="'6"JYWDS:V&WAM21UE
MF4ORT==,X1NK;X%SG] +D4[M8QA5/P:R7PT\2.)ZA]F =](5?CZF.@_=%?%J
MG4/!K39G'4YDM-6KZRF!5P0*KUB\C<U&$^@4/R1I7%C305+U]7@J&%T:?E((
MQZFU5]2WF:V&(TSTH*;5&>\-:39M>Q_1%J3E;X-?G&Y$^C,</=5Y=)M:#7R<
M:F\$4 (_.]&?.&&J8&J(+3M!6[6;TI6OVY5_#4&-N@@23!6M]%787@]H0VS$
MZ ['PQ 44&]$+7PV1;>'0@C7719<3:Z*WNE*S9")A&[?*P>J7NG@;E6WWB$M
M1[=,-9BA1@Q'$>&^&F1F[4ZH_MZJNTGDC/R" 25CMV$)0F7OD_IO!U[&=]C=
M!"$)'WWW-B1[O@:)6ZU:US<8F+O,S%U+F!'B!*LU5>+5B[J,S[9-QPMX5[DS
MUX[/4LQV?N(0[>*M"GIO;CBX$E%T5JDXQ_,PHNI9P,VH[LO%=E<1F=>!RGBJ
M<QW 0Y.AOF7C^;T+[G"TI2_HI8F H0SM":HJ]S%>[\FEOZZ,.F_3U.Z% P-=
MA$,OCW*H^7A^"[74.%YG9C;1TW@6&/IJ?GR,\*/(5Q:6KCJG3&V3<<-'!)J
MB@;18",;XCI;MAYO>:LL]#,G@F>+RB+/)?^S:6B\=3I2&T^-+V.S2H4O_7;<
MA9DIL9XB >0T&0V=D$X!^Q?'$5AZ_TV5(#A(KG"R6M\Y7^K6\?"=S?94UX([
MN+?$?.RRZ&?$%#!N?>(3+R(8Z*$6RM!U.JN566 MFHX93Q>2)["$,A/ZN>.R
MUT#M<[Z^S10<.?5)RR4?CO@(E>="?!?*;,@L9LI="/%E5!]\\CWL';]0;98J
MN"II0I29J,[*,MK5^/FLF>!4EF[JK8)L(FDA[S2;=MITL1OI:KR!P\SF&;,$
MRB<<)?!,RJ9=-RRD0R@,GZ'($FC3Q*=\WE/YUC^P\01>B=66R;K/!PU6<#F"
M .==_"-E7?S@C_O?<DQJOYC"L4HUM"O\K-F!(GKW[@-75$:I=A0>1F,:7E#F
MRU1X)S*6Y3H4V/YGQ-]"%"=5M]@[6;C9VGA*.U(>,9(J'Y'1<*K5-+";#K!U
M",D7!2GF V2^&G'Q 5 F]N3SD&Z1_7;/$6OQVG?]ZK75V'#HP$(=PZO:O5+V
MV6Q?:O3<6F.?7=;2-&;HK5;6TXBH,Z&+L1=#Z!F$?[)<%(A&<\CU_H'XKG1!
M5<6\MFX_VY4A0WC4;-V%"22=)E2LV'=-1DRWZGJ\@75X,OW9%^#QSODBL%KJ
MGY1-K<8T1<L:5&M]NG14M,)L-3K8^E(=SVZH%>)*49VYM8Z^8&*(.>(&>)6(
MG58/;#)W#T)[Z/3@*%Q3#8%YJV_#=?+,4&N?, EWT*_(J"T/9.I 8$S MVK?
M=F7Z3ET;2TK?DHZBQ[*&B9._CXJ_'R,]F\4WBVFN?)56?SL%>V!IA';#=F[=
MW.KK8.EY]"B)Z;N+WIG_Y>]J00%+/QYM/JYPTM*Z6#$C!Q 8P0[R7\L*.PC]
MQ7C:3 XFF:Z +9SH?@+F7F'$_%OX#".I5:6LTG(Z4IM".F=]_D#ANZ$?GSPK
M>JUU)&+./?IRDF^,Y9[>070IN\L@V(-*S'$#SP(/<@A+7ZM#T)WN(R;NDWPY
M2([$@!R,<4^(/R[] .?#N>N_'6_+2I1'S=CJ4V5Y1W#ZHUMP"T.-]?L=%&6Y
MV-+532? (6?T85YYHP]">DH' [=)I#'V@Y\0A0X&EA[6&F6-N9%S>T>ZS6\J
M3KZV36U&XJJ271(@07,A'!R06TML?+?K\8OZZ]]\.NR1NWFYA'=AC4>E9>/)
M!$0U 6Y6?3[>A;K?T<,,EHA#)*2\5ABBR0/2LO5X+[H0@$@DHE_C Z[BZTGA
MB-?LELK/#2+(7=_>ZV%73.M9!7=.]$AY@ VZ6B_=C4__MJUPLO>@-CY@Z25<
M>C=PF:S6]!'#8@*JK'VU;49/S!P<:I8%05:M5+.=6H;Z@[(/);IRYM<#;T&(
M(@7?QR5D==5F?U5\.28V/M5:[IPO.(9DJ+HPR,*'XR580GH -UQ4<*M_,:+U
M(DY4)D##95?^K5T,<(:]0-\.'O[RG[@:O23_W5@@]M6;[% 2TXC]$<^Z>D=E
M78M1(1AS&(HI.I/ 6,S^0/N2OTSSM39XY4!>0I ]^^$Q6&\=L,O$B&^$3 DY
MN,YJ49JJOQ\OND^O&0GAMVPSRF*1'-U5J^19>*>Q B)547^#T)[$&Z-8.KSA
M$FG9> KF_&LG6D7,?>Y)4)2ZBBIM6HXFUN<PP"\<X.5\'W@ML6>;6HT'CT)I
MTX<=@/TV 4.4?CK)I#*9M74-GB_Z#D_H/?! 3P'(Y MYS=D.V6-MJ(X.0W+9
M@"!6_&[$UXB'MSSU'\;SE[T#[AE<#E37LM'0B!JQ&X7/)\3QMVD>0ID26O[A
MN/'455B:&K"+"N^KC#0]G-"X)\)UA'?TQ2I> _7J=4V#4?$ 6^=L5WP\\AN8
MA5<V>/#SWXV/CL3CH"I<S(0(DRZ\VJ6MC&\%%C[9=.H.W8LE4X'8#;Q$!M1$
M*0]NJ/UT(LB:M7 .)5].L A(*UR#ULTMVVG_-[VH$QR1%QZ/5&.RS7\Y\)5^
M'SRQ6MMT7S%G&3RAX!Z[#_RDQLK4IMEXYZYP1[-G(-S&&W_7< +7M!@C](4]
M\581BQ8,"@% C9]/-RBJ<T7XJU"L.#.H#0?W;P(YOI 86Y/I5??]B+E+Q0+8
MF@^U,F.IOM68)IO\P[<!;:6NQ82KK&3]P1:KJE1W;#>+7::RZ)"955!GE=^.
MF"R0AI-)0)-+''@XJC6.-S:;9D),(;:L2X9,D<CH40\:@C1_$,J=PZ]Z#9V)
MO7X:PAD.I3:>/Z0 ;%&KJ55^/@4@MD&>M0= M0W<W]3L<\P7,(!YKH:.V?HC
MQ_C1#\#%EBL;(GQ5K4N0M*,S%:]L[?XM_W9:()%UMH3"MW-U)!^_E!.H Y4Q
MV.,T=8T3CNM!V3UQ$G=SOTOCV &&C&U"F9DA4LA6:_88*^*?6.APW'?_0_.[
M^R'_[M8KE[$XU+BRLHC9OEZAR>179J_( %48*RC8CYGY#7Y&*H:=L<,06G47
MPH\TZ\52 "-C*_ DW?D9,0R0Q>I<.U'F55);!*FZQ32,+)K[N]3L48PT-MW;
MF,\[B8U5%4S2]-YKV=ZJQ0A*(ZW6GYW_#B-YAU?"2U1_.\%*!3'GDSAQ#'S7
M&I .I3*ZB47;6 !RXWNB<!([1?C+JJIPU$$D;%:+*O/DMFTU$4=!W8U8]N64
MUE%GTW>Z8YI,>4/W9O6@_$S/B.V^PI-5^/W\%,%&Q7?D2M^#\S>>)L%6N4RQ
M:X ++_UVX&,YGS&AP!EJ0)K+#NI.=(;V/RNC<G/?*G+FH<1*W9?:>,M+J_JX
M6N?UF:IU5M]H?*0#!N,>LWSE[VOU[+H64T!!4_RUC@9MV7@R\%9-  =5GT]A
M=MJ=RC4-II&%F.*$IW!LZ9)I<LQU(C4UNTM3FE5CLW%5N!;A1A,*,"K>CE=5
M12!:-1DUN<WG\#[B?N? )=5XB'4M7N$K0(4/3N\!< !KXZ5SX8#R1.A*67I;
M^F*$LP:<9")-I5:S:==V N$C,A>M?0!(L<68;E2782,P,X4?_WG\<DRW\V;K
M1'_6V/(;FTW#H-^,]I*>QW'^A1,/:^[OS\MXV44,/F"UUB$%5D$O\ +Z>.8P
M!52YVH6Q0WZ)POV.U:N,77:K[%68*3WLJA*2QF=LS((3 @2WT@2K/G@5EE<Q
M<]I<63# EG0ZIMH)$#$:JE&CSEGQ_=0T-17K".<>>)]49O1%<'A1A($[&?@J
MDV6L(*+.]WPGRJ,657TUVJ3E%$S%6OY!5E?+]S :H^,/R#-!#T>MTE/KFDQM
MHS6_.ZZ)$WP./6UON)'$Y]0H00CRT$^>0[J>@-[?'<>[+HMW./KC>GPRB0SE
M#O=<,D.=3Z@#M<E9Z ZQ2+:G,-XLZZ5]EY[')L<A +1X057PG4^W;7G,YPWF
MDRD3(/A9J<7.UQE4C'<[)5U9V=>2S*K7PH[K]+\>!,W@(V;+VS"#UB'8B*V:
MCYL,DZG64Y?MDOUP(@$]!P*<M6P\(BY=[,?*EPU*64A\]X7_M^D,;MEX^(VB
M=T>7]64%)DOCY\8YJXQ@J_ITQ*TI'G54J3J\1&^;MN-'#/2O$U^UTHQV-3)B
M8,;W6QLT6_W]%*.!]0 7X3"YP<"M!Z_N%-[H\ CAUI1'&Y;[&')LZ4$$572J
M%G/NHRDI?9UME==1N,/TR0#OZ$08+7<E-1/L]CUTY0@Z7]SY#"5W",%T,U+U
M7W1?4U.T3;L1@XH(X=$G'%V5X3<W^T@;FXU<_^M3CN_Z;\>_1#7DX2;]L+[-
M"+4@[V]SG&J_F)\94@0Y:);AFY"0\S""7QK*PJOH; I)[BT00+,?CNVDJG^K
MUSNL&MI.)O(32I%>T.7RY'OT*KGS$Q8E?1UR.^4J8I[C5<1#IA*,(:7J[$L"
M.7#T4CT+Z+W)S2\M0T>'ZV]$-$MN,:B#PLE^,YYIA&HRC:ETN8]FF,CONIC
MLL RQ;X9J&_0?L:_],4;%E@%;(?"TS7.OEVS#UUE.;W%2<(+V36^GX?O<$3P
M<U[V4FB=%9+GOQH5-*3$_"VC >C;1AAV2K2[ZDBX[B1']%$)'#4XMKB[6N+!
MKAZ(_ZB>]PR,P-_23P#I.O'C-?=%W29.Q*),:Q/^!^UDO%63@=JKBXHL?CAT
MT3:YB%(W&)39+5V"9:_@@]J/#, .@16@  IW77P;DFK,P,H&AJ)W3I@N>A'\
M?>.[&_ZDY4&!Y>";;9H-;2@1I@W=&',M<&>%&42F%O.81[#UR30%>G576?<'
MH6L^/#BSE+EW^#_]H+1<]0&MQ["GG, BB>["Y_R.KOMR2@;-)J?S<.[K<<O)
MG9]>G%P$S!]26^ZK_-MQ'=<I)G5)A90Z1W9]0TO[18#2O<@X<'B2E6R6TL\F
MHE;4/C-+/QVU)$4NGE-J^#?%LAIM6XWYALEXN-K':;5I:16UXP1.$ASM(' ,
M%G<%%G;I9R..ORQ-QJ$H68X%O 54DL4QIN\&K,6QGWU)(B>,/'HM1"_,D0S(
MGI P$S*'B%Q8E?-FKL?9FMJ;,>C,E' XM/OII,I!2$#]L5W38KS !^QN@I"$
MCR]L*@H(8+6U$UNUG10F+%5*V/ W3513PXGA!3=:IAN;#8U$LW^(W<CG134I
M_01#1@TX*&[W.W!@R%=Y37&4 TF,JNQW3C"L>11TISFZ 1C>R,5\V:JO)I"]
M,1 (?ZM,CB'[LJI/WL#E78D!I__VM;AQ9$))2?*WC1ZG@=)6EXDS@0@#OE&P
M5[Z/ZEU1+1O/US'3JKSBT+U8KL+(#\7J*I[EWTWJB$JQS?[FTT=GY&[J+4"'
MT9CM(U14>&'X2"9?F\5^AJ\H UVFF1!1&-"_NGSBKL+D-YQP] JJG[?)2QF*
MZA2BV3[[L8L)<0(<[@^JWU+5<+Q\<;K;P(ZT"J ,-"OID89!-\5?MVP\8B@?
M#_BNR0;(&73O8[S>DTM_77G]]B$YA?PA!10AP^[:IP]5-QT719$]*-,JP#>W
M][4VH/HV\U6<+AO2GP;L8#SHSQ#<J1IFW_&+Q)A/?UP7X7( @8D(*?BKKZA9
MTV("IHJ>];O:V2@&Z61<Y:*DQ@C,K*SD>PU1U/343>CQ]4 %@1=,>.VT , =
MBOK .B8O('.*=W"?G/KQPSZ*N28H "3N0@TWHTR?/)#"%""+J[;P:#6(PWVR
M66[I2]-U*BUE)1\-O!;NGL.[#56*'0A_@PJ-& <20A3>#/ > 'B=2N/[802&
M#FNL5 ?EA:JGG2[7"8X@Q_0\W)?*TH?<P)+=;W?_V#L\?F/Y&&&VNZIGH>[S
M,4$B=H[O"=N83,DYI*[#(12FF$[]2U0-L]C8;&JX;:=PRPL#: O<[4.I6 V1
M//<K#$6EGQ@J)'(10,H5A*O3]Y .000>/!S1A7$>1N=[4"JAR#&\&,KV?A]R
MPY_'\%0-'K7Z'X2$S] 7[9R?3Z#]X#@-)*\XB3L0LK2$3D*ZI"M.KN+OIWS\
M=C]V9V@J;D1&IPMKC7VM;.G01N0.',QOF-,BNZNU=KZS4^FS\P6J?PT]KFVZ
M'&\@][L=$7"4HH#[[0;CY #,@(-(#'RDG]+W*OW3559(6+Y^LF?>/-JRIJI]
MVZ;C38U#X')D]CGZ'J^'S"C]=C36I3HE0D_I8N=)WU7:9O7WDTF+;Q\_W:;E
M5&M75/ET&EI-,C:ROM!#?;,1D$Z.JY!.CL=$.H%+"O3QLCP8S8A6FTS3JOW@
M>8),2;P-UPF]@S%#=W)AK58HERT;C9Z IH_9=12>@Z^&'OBIY;8A[:RY_10M
M%35A:_6-YJ>@MDX<R%DP1.P'OH[\PD-\(DQ-HZS>"97PL=+B7OKI;%=1BB2M
M*>/=ZDP,U.=X*BE^KHHP.@1 ]V R$\NP:.WZO&P('!B,_*1TQY88Y*V:#AU[
M!R?KT6I]=!^+"V[UD#AT&.G%)U-_Z75^"<;6:L]B+U+CE>I2J09PK] -5_L8
MKOIZ<.QH'O4EU<4TC:P.\[VAS8CIS[L(NWX=<EOFDQ&WK7(CM'7VU#89+[I#
M&CLR^ZSAY&EH-.U M3XQ:+:C\5D"B\\S7,"04Q.07_AT_"4E##-5EW?QNS%U
M<PQ!_E"+$,J\ARP\N-X<5=]F9( GL9HKCR+]F_&\;UQO!Y=."G4"T8[JH*QR
MOC4WG$) ,P.C(>%SXV.GKLD$@B3+'V-LG.5SBQ=T?VF5(34 X0E5HKD*$WR
M6;YU^Z%-D>EUQ@:\)-2\*CK]\/93M-XU/25;-1WO[9&/"6Y89]7?CVC[:#80
M#V,$KH)1<-94,P+L@\O+DQJHA)+/1LX=;K@_<A^-B3;$HJQ.L8RV$KX,"3M=
M&BU3(51'8M,P[S) "1;E+2XPO]'BV;Z]Y3=(6G?FG/XD/UUU7PZ\?Z6-Z^XY
MK-Z]Q8^F VITC -WLW6B/P]#-LHWFU2R=0]T!NZ%S>_SJNO92M_3MES49<!Q
M@3[V,6ZT(3^F]@!OH^LH?/(][!V_W#.0K(O@B4/>MSYG.Q :L^"'#NW;6)*^
M[.-IVE2:TF ;6[Z:0U#".ULZ]U1WD_)X\4+4:?&S=H:$+I2F49Y%I!XP%"JN
MU6;5V/8&A=YDIZ$P _L<A0VR,)K>ZJV:3M$(45+A\8K.Q-TS)D_X,UW.FP[F
MB39$1\RP"%V,/88&JQOV9%!.50)!<[OQ;X#VX2RU349U8OJ\WCO=0!GL@93/
M!LD.HS&U$%)>KZ-S!&FQ^>BAF4,4'!6JH_8+><O4NY7L\O JAKHZIG3H7@P9
M8U9!379+\:,180X"\!"RI,B*$<]\,CWU&!ZN!\>#Y5N.[>N%Q-2&0B,JKS5]
MB=>[@3O2'->FK]T:&98E9"D8N$4J),?WY;</% &"Q.1JV)FAJ(_W4%)J _/H
M*[>P,(BSATZA$&*3 M:3Z"349YF1+OSF\3W4A5<((@#E7>I.!VB1RATT%/GI
M&-G31-<J8VAM$U,US<1Y7%_!3'TT@:"/JY!91$L]_5WC/;K0'-LDWX!9-S(^
M/"'83?8.D?B6M7;5F@8SL.OWMN?;KICU\=,#*R1=XC$M?#+=Y)ZX(=-&X#&
M14,B,IA("AN:C>D.>%]D#!B"G.B_4.*LV*NR0PV==C4L<T/'OMW>'W&.M2"V
M,-C'];!M;9J-^)Y*8)AKS_OL-Q,*"U*1W\)AT:"\'T!@?MM:[(]Q<VI-)\\V
M1?34@Z24?38EZU][;UW+QN.9)E3:+"_,*[97[2E3WV9"I\[2=:,]SIA'A7<T
MS6=J!$/M37;@+72)DX2]'9G9\G;_L!:53*NW4U,3<_"I2QT 5>9'P@-0AB6T
MQE$]A-+XCD(M=N,\PO_8 Q+VP25)\BW'W%GT-%9)*Y>BM%8-TDU=B_$L1RS#
M6-5/9YGT?N#Z.X+3']W"K4COR?A^YU'NEU[(+LR2XCB#D;7T2KV+' 8 ][)]
M"$G)$S7[^PD8I&HB(-K!L#<2F("0PAY]#>6#F;&>AU_2UV_F-ZWD/836B-!_
M#S$[UY(S.,[O:%<U!TG5UQ.8N:;5U=Y*VI[2U*QV)6ZV;M&X=80F=9W'*LZR
M5D=NU=0JNO/9ES1AO!3)M?;3L2.BBU?HIP\??_SX??U#I57;$;$>6;5SJME^
M=J(_L9887W5B5#>8GQE$8- J75ZK5WQ3K6P9ZV[HU,--&"5W.-J*>B"E;L#B
M1T/;056\!/>.P#_ 4Z+NF+J\O"X4QD_"YW9I6!QAP#SZ-;I%;9NA:U?4.$)K
M2E@TMQHUP"J61H7Z0*723\?39<(@E(8:_E"M/W:KOQ\O.SR[8FM-"^7?C@<%
M'(;>LT\ U3>O[+:.03Z,Q@3>"L5 3NRU".,\\!TQ3"^C&]JU6+::T[OJZ^%A
M-!2,/A]+I=K75^MHUW#L0A@7 =TJ)454*C^;6D _#UVKM AW0HBNH6:U'-IG
MY[_#2,6(E>R%BH_&CJ#J60J]/OZJ+_%II+]=\'+++ Y50X/BZL6JK#[BV9<$
M_DE%. OHJ1W50]L9Z&I\W5XRS?*."ERWQ]QJ1<7R3F>OT\J:A]G?VZQF4@>]
MT:ZAU8&\ 3M Q4F9_FZZUI*FJ#<9G3%JZ-UA3$PJL48EB&@%[RO<>BU;3S+K
MV'7WVSV'$])RA:MLU8<3F@(,;UU88^&SP<U[#,]7!Z#4Z@G*Q(KEGJX:.F#N
M,@CV<#KR"!)Z$T5)B4-Y2,J32+L[%V$F5"GSN1(!O%5E:;1I.? T#IERR<L_
MGQ#'SY=R,]K5B.ILJ;.9'A. 2;-::S^KU%+;4Q@S'\O;NUKFV,66/H@C'O(<
MU5?U:-=V=/-46.> YK512Q G#K)-#=+%1)!<:K6&TD]-7#Y'&>4LU=TD2"+4
MX;Z#!98LW8U/G\Y5=JH>U,8T7O%AUL#UZ96X"2,X3:M-676-IJC'';]PZPYQ
MXCI'UB$4#*4[ECT!XV7R]XWO;B#>0WHXEQ'^[/@!+_M1MAS[$9R4VE,S8Y6?
M3^TZOVP$9FIH-K8MDI<$*C[EFFZNULU'O[Y7Z[(J>\<OVK_:A0^V)&,U:ND&
M/[*RGT%RY6S+$BM+/QM14WA(#H%R*_]ZO->U6-V%A/G:,*NF5N/'[VE/*!&/
MYZUR@(D%>,4LNF+=#AJ\FRFJ(B7J.> ^WSV'':Q*U;3&JV$#44R'1H8T-)I*
MC'5C.9*JS^>T$"%5<+BER*B-G'!SYWP1+!WC *\K8:RJOA[_W*6OCY)TIKJ7
M3(N68R-:Q7>AL,Y)^\X3KBULT-QNW*"*M*)2$>NP+GRBMMUT76Q5SJVFI\X
MA*VJS@=4+&S9:#J83_SE#'^K]MY5MA@SET%ZTYCF4!)^ &5PKG"R6M/CO#JK
MX2 JDSHO&001A%(!@C-$INY*[)(=" P?]4=/,M]ECC51J"W=&2+AG6\0S3O'
M#=G21U<1%-B?[OR.UD:P& 8)H\()ACZ #^W>D(WT/J ;-(HE8L!)&.U"?D#1
MKIEADY_!'$6@O(9R9UHC%[2J.LM&UG]R>>K-L#2E7T_ !%A13(JYH=HF#S=1
M&-W_=MBSJ*G5I'P%%_2%ZG<*D<BW?(6WPZ\L!VJTVR'7_>CY$5H(29-EI[;)
M>-E+N5J5IS[9)Y5^VZJO)QP+E"V7?@/!D?3*CGE3T]%!]9U;>H*>@$,SPLY)
MZ)5Y;3*_GM*&J@+/UH99QM.WWW*'$!U],'3O'WUOG4.*1;LJ$'4MIQD$G,?V
M$L#R\+W<8A=!R81V"1GNW->8H6]/=#[#@+)Z&3H!6!5P++2HFC(^=8TF@:M^
MJ:<C5\M1\?VD]$:1&'(<1E'XS.$QZ6^2EP,4R$H24SJ*FHRSM4WL9J HJ_CR
M,<),\SR!@%8<[2!(!N(32M.U#VL[M+U+&-9TFYJJ'$A/+K+WX'C*59PLM7!U
MHS2UM%+FQ*C, ZWSBAQ,:\Q<BAW5I*/;<)W0AQ#.^4;K8SY:M1W=8G!@D<2F
MFB(]J8Y^H+;02;-58N*V16B&[&%,':'<O5!=M*NVR7C!+-EX%-#!JB)82KX<
M,623A_'*%W]#S>#2CP>^&-.,C=6Z[&HKNP(;VTS,1'>006UX.&/: V!@B5.C
M#L6X],OQ-QECK'UB:7.[\30"2!-8K9F.TJ1QEW\[ X#*"GD.(# _!./*YWH?
MBJ-K=\JSHQG2JJ_JIE;3PR-K@E)M;#<!QZ2$ZFKGA,Q^/?!5HX(+,T$70O^,
M,^KJ>1B56!3*;J7^1 >64DM<T9-SRGBO^G3,G7!?K_7I7TQ@=2_I^>B!/\I_
MPJ+$EP_63F[FX,E#\%!F\[]:YUU9[:'=!NO(:@@B>^0Y+-+UU$F<\M39QL\G
M5%&DUL)?'35R$)6I!,-<BJ(-M>"2]6VFI@TJU;LO7'D=H1&?SSL1,+E:MW%Q
M5'\_*1>'. ;ZN#@J25@]#:G**5WY?)?P8+[*X[#J^_%>O-&C$XAD&=!L0N)[
M/,HF !MH#'"7_/Y1V=OJ9(C;IT4.WHVE68;#CUQOP@!73FSADZGE>]<>]O5M
MQDW=TQYS]0@=55]/H,+!-5WI;O.=5--@O">Y'SN/CQ%^%#M3/"V:C$B-S:8*
M'\ U;U  (+PA!A#EJGR-+I3&5)Q23T"S;E3R[01>99H7+K6JMG]K-30?^+V>
M!SQ+<$ 5S<].PNI%5\'$M6@U,2]#BTA<F=P@L'F>')^ '>@\C%B"QM"!OTW=
MC7DC0(%)^NA8TQ.!5=H\QTWW6D.C"6S+7,P'U>:*E30/1+SO0'(" \%,A,<O
MS(/2SBY:;&&W=A2]IQ[I%?4+?3[1FXMN,R?(O[^:OA[W.'IH/A\>*M!N>?@_
M.' EMG@(/ZJNH*P0RN5UOW<(^"VKLCHFQ.# =QM#YL+P1L.W^]TNC!+VA$M/
M*!D^=$IU)!(R[_@MCIY\%]<4Q1F :IF<T /ZLB7T;\'C7[_!P='][3<9T>DM
M$>ZCX6MR'YB!DIM-=EG!C:]<$7^0!U7@,PH)YIN([J'GY^?OV#Z"+?3IPX?O
MW\.OWS,YOOD/#0D0Z1(@303T\(+T[X08B,FQ0%P2I(F"F"PHH<(@(<T"<7F0
M'R NT0))F9 0"C&I$(B%0"[$!/OW]^FXO\V@-H.4SD,8XTL^D>T&$^WHO-S<
MWLOI,#VX)2%BFAM,3S?LN'YE!TCK88&T/HY$)PAZH8N5>TOG*W>"(S7GNIB1
M$!-S 6-3$A;JW(#QC<4K>V T/R?A<]>Y3*FB<(U2N@@((T9Y3E)YH<O.!1Y"
ME9/.2Z5S0;KUW*33U^&(HN5>0C+B6N3[RI=03^'B, @P45O,@;X<,C.9B#PS
M&%$DJ2))=H$$8=-B%6!:CE_N7GB)YS[SE"&+@"X"LC.2AM0*@GX'FO^?*7ET
MC[R;(DLP)PO+1XE>('&SSPQQ\BA#?X%8#RB,D.@%03<SDY),1D"Y+,N KWF
M4J^S4%)%,9!=H)@11CZC/!^92%Z<6RX.IXDN9B9.$B8.*4Q1F4P+= ??&E=_
M'<)>ZAN,<^$A79^ITM<+"H;R */KD&N_2':R0*)K]#OOS]AY*44M*_H.KIX"
MZ&N<17V-LQBQ*A2HSV,^?><MD,8.>J;\()TAQ#E"69862/&$&%,+I-BR\Q:?
MQ&#N>%5(**LC]M0Q?O0#L)VA![ZZOJ)Q. L\=7U[7]L0Y/1+<+_#?G+U"%_3
M U$,)<PY0/I9$#@IM..T9B>,./DD7?1.4OX6+(U*O.N9BJ??["UEM'7%ER9_
MBAV2"8'7BPRJU!-6[PG"YTN;J%W[L9]1E'<'H[2&J_&)F4"I!N&.M)<G.FBU
MME3MW,MT1W^C1K?Z&\74 I6LWZ]TO-M<*^@(G8<1 +RZ5+M]I/]]=Q72=^1?
MZ"_41.GH.\8'\RYB-_$+>U<H-"KN;0!3MLP[Z..)$B)%\%*1C@R@#3XC_I*9
MJY296U=(MH-:J<PE$YL4C9E_I3%1N <D;H&P^>F(8B*HJZ]]472$:$_"'RCZ
M0EIGZ'?9G;&'FAWI<\9^.0K2&X,<.@HA&P416X9(VNEWQDT-M"$ R?2UL0(=
M!(2FS##)\6K8<"I9YN[@GKM'^-+-[PH-_9VOQQL,014\\3?9]UHEP@PJM[NB
MC#CIN8A$1I5F<(A((0#_DE+!/GM#<R1I@4G'?M?SZ%/*B9LRC2+%-?(UMI'#
M>D2.8)P=D]K!"+\'WM6A*;Z/4O99$U<(('YO[#R=SZ34J/0HY1;I["+>D]+
MV,VMW]6"9[45Q/<:VZR)9%S\_FTN2@TNZ1(N6\&F+RN5RZ@THH[WEBZ;(FH\
M"&5P,4A> J6^FK^*>P>BB7"SZMC/LR\X<OT87\-[XR8D9!U&T+#/9/. P(>6
M@8,/98&#*C10X[PD*E!RCQC[;Q-B)(ASZG,!.!M^PLPSXCQF1A-(A"O)_NQG
MD%$]L9,YT]>\Q20M)$1I/^AWZ FQKLP^ST_#+:9_NF4%H%<!Y@'<?295=J#Y
MCK4N$.UC?O*1MJ*AWWD',YS#W-M"R;I6LOJ:K&& C9M2"L72TG+R/7T5C' N
ML,91Q&<D%\D(E U#65H3Z/ "H.>47-?("];9$>L-I=WQ)Q"/.G?9/:KUO$#0
M*8)>7\=8Z ?NIP^??K(6SBRRK7\-"14#/#*#AFI'G#IZ4N3-VA<&E4P:0U.)
M5FLDJ**4['P$JHX[+\Z3,:FBY ]1SW45B2RS/I9J3HKI8H*:A6#?4['FSZF^
MYQ">HW1.?];+O"&)(DY5I'HA1G<6PI#QY,B E:0@!)D"\SWT1.Z#2^EFW7"&
M-413LF7,3TQ C:1I81I /GK:HN0AO:;D4YLJ"^64/5CU$]UN,"$BL7L [Q C
MAP2]:7-/[#/.[DVVH'_9^Q[$6_+X[>-]<A4FO^%$X/$R,* 7_M_.9H&<]L/W
MD>Q7!(XCVC,]/!*JLR9(=(YXOV:U(5N#D#DEVPN/?A=_VC*5V!J/XLG:8E",
M/U*=> -V,?H'>,J?',(L9<F)$T4O?O#8/\@7$A:9/P;^@M,^9BD9R0G%_I*2
MGZ5,>D1LE6#Q CD)DMW(C @K8;%&9"YF)!PF>9J_<&PG>-_@**3Y"(>-@<A>
ML#0 .7]/%G5*<[&(NJ:IS9TAX WAC#W%0<BJ9H31SZ]36G&Z%7Q4O'NP" B;
MH\9!+N/)H@-+HMP/[*V29&?$/LER/HK#:<BXD=:QI6/$\#@5,3R%,%VG+DSW
M;2YL!+DY!P4-?\5S\A.?DP @9+%4!PX+N;;N3NN?V5WF3UO8S>L>2JI<N$7!
M[6D'3V @:6K<G0M+4 (J/?ZN;T)HFFC_.Z-E/LBJ%^MD+*Y[AH8Q<+9X!N!^
M*BZ,<_R*X/OLS(2^MPZ Z./,B5&W $4B:H+<A>(FE_<_IN,3QKU<@DI5<M)D
M121+7N=R'NGJ L/;W,25?EQ!%B6A5,!12ADFD](VJK95%*/FE]$-ID]='\)0
M>&XC; ) @:2?]9E?5L(7S,(LKSJ]S+GCZN;V/D9/#&M27HJO8@34Q0.2"H,X
M[U#ZBH7Q(>V3JP;\8$6BVU<Q%KFW$1>3JW#(XV/";7=2O8O2,>%+Q6%C\L2[
M-Q["EU:NDB4G!M*8@!YB!.VI39UE**I.%MDOJ8DH3DS<#2>J],;1J"_DB6P-
M^G4PT>K,0*91KM@Y(NVY2Q$BWO-\2.VSCN&H^D&X%\.?<KV< ]?Z?K WX&F\
MQ;E/<'1"CY;',!HB7(310Y+@Q/DG([ NBKLR&QTK/$NUKRO\?.P3 D5!5VM9
M"EG$%?6/MY(!2IHI6FA R0;SV&:F E(ND&1CWM(3*;CJ!YWG)83X6MF9"K2U
MDH!A7/S<.:X/ YOH@ [#@QP& (*6PR B<XTK=KKM.>!Z[28D]'49<UR%/M97
M9E_-FNT#H;Z*/OZ%Q8N8BSHV):58U9<YT<ZL"'.*'Y*TA$)?91:H:84HK*JT
MO#I7 0ZZ_SG+":,B+/2L)"(-PE@+0>YK,!0IL&!FKLOJG8#)5N.T,97W*QWU
M,O/L$7+$$&$Y1#F@KH7\C0U,26:HV;L)4ZT @8P>^O1G.'KJDW.2H6H#7YY7
M,$P];F#P_NQ$?^*$6;W35)X!W&_<FLZI"Z-Z2G]V N;4KI.,C14$W7)!GZ3W
M0/1C-B[;A*15?N%:,4>PY^@);;^&8+.\""CO=$NI2(A!(3AY'VFA+=Z7!I5H
M?G7;'0U](7"U(-[X.^1+N@L53&,>#M+Q,*#(]4N^8F08&IV]7*N^K.N3P&@%
M%H#_:C*5505#/669NS2Z(M[6IFW'@(<ONLPD;@L/SRL9BHPO+QT"&;2FR[TS
M*G<F\(PJ.5=0V!A*,^^$>SCN_#PL]P[01R[O VPV:2]67HT&A<U?):]5SJJ0
M3#!>!%S><(U"U9%Q\Y.,:.X9$#U5-G5KF*1A*>ZP*\M9A!61^[% #RH?ABZ0
M%^P8Q]_H/.3ZN26YQQ#7.FV^)U!"I1_K8U4]D57YV+N*FSZZ*6_9E<]?Q<*4
M8A(5XQ8_PI'\"PX?(V>W\5V']/?GZ]1FP3PI\FW'4W^'W4T0$B@7<!N2/;]?
MB3N _I\2GH\ .05!HXUB21Q=7I[,1R)2F UTJTMBQ]&8.:2N120GP*VOUFN<
MQIGU\OK+ZJ3<_J/"17< ZAZ*;FR\1PS)2G)B\@-:TD<,NU[V8/BY:5+,W X\
M9%:-:^M+SV/F*X=<.SY]89\X.Y^JLII=LQ?.LZ*.=I3\$8ML9AW,3RY2$ DH
ML[H_G#84"4JM[_,3L*BNMI5UA-QZ4^*G*F][X>TDU0M_0Q%A255@@DI)_F/
M4PK=EXOMKG\)%P6Y]/<,Y%):$5-TBF2OB'<[\U%0[K2O4GK]")<2NE)"?]82
MEB;-6I9110/0/OTU?1<%B2B( "H& !;Y.!X$%^%VO]TZT0M#@4@[0VEO2'8W
M3UG%-FV0S0J@0N\0CSL<;>/5>CDN C[C@L5WP[]?Y6"U?6$MD(=C-_)W-FIB
M5KNY[F.\WI-+?]VY'G8]*C.GCZ"#.0I9FUI:XJ]$[Z@B!U9C<Z4BF14-ENT-
ME@OJ.@(CV+9'J!(CB%**2)"T5-=MV 3CWNFT:3*'H)^MV&$I87@"@Y*U<-_<
MWO.#.T:/7\T0#'?YU:3Y&\U:5F'@?NP\/D:@FT*Y" D3WAO.(DM7QSZW!!0Q
MI&"D5*;0NDP,OH<'HJ10SBF*UR"EQ!ANCP"STC"K=:PP:]!MAN0E15$7H\MZ
MZVZPMR=XM3YS(C!KQ;+@,3TW?'<9> +$CRVUH9]J<'KM$[6N69<LGD-TBJXP
MY'>X]%F,WEW2<^E;%I1MI3"TI9&19[KH#89!]I<6P5Z4# W?_#9PB)6SNFP<
M^EWC,+\^GU\MVOX!",]"&NG7J9JQ60BA!_I42F(I\F<8@73]F:XP>JK&UM<7
M![VC!UR$-U1#HT]!?I#!,9:S[-U1)2RFISWHDX''_D6X=NG]]SYFE=NH&*OU
MG?.E5XC]!K1#T/76>3-@DO:)'-7I @5T].B)E#A?+!3WG,2 96[I##?9BVA1
MM(AK7+&36N,++;5!O>*#2IG[.H94/U_LC*NEPVH:PYN]40L6?GUKBZOV'1R(
MQHQ"!LJI<B-(7S]G@RG%+F+XZ*-CP)B0&4[.U:L?QF(L0<,RLQY (+.S^-DD
M8'GINS.4Q:_IP=,SB83GIPDD7J8US%$HDI-'WDN"^K?LM:XZL%!M*B1/D /,
M4NC/'9<YA0?!<>&$D:0Y*U%(7@H!,2"I6LNWTP T!+9U?[R1$9"K^XLA9D0C
MM)"@\N:#HZ3V%-^%LM8#IGL_5<3N0J@7<AV%3[Z'O>.7^QA\<BNYC9=4)WOB
MX"K]['HI*X 'JGC135CTYZQVB60&[M5WP ]5S+Y%BB4D>'JQ: ><PD!FXRD5
M/S!LD1K.0+[GZ4_A[ZQPTTX?T#T?4/0M4F<U<A1SQHNC*.C@3+%#!^RZW@I0
M]>G.H"R!82.^#\('0'8 2]Y%L-LGV7(E?8V**<CP(E,40K*#>&$)SA S\]"=
MJ_.$&%.%(BK6+8]3&-,J$S8SJC /FH;IS&S;+#8'SH.3#.BQQ8J5YYCE1<:K
M-66!OA,3"$.XC@1.%P>"[7?JR1Z$Q+(/I#H1H>[F3S(63R=BHF(ZY]AG2P#*
M4HD@.^9SZ7I5ZV>3Z 1.)=$+KR$G8R@=X=PQJ >;E9;D!$T[8-G%*EB4]6'Z
MKC<K:BX*N-W<2CW-+.2*N<6LZ9TM%[/]"*)>J7C5,42&T_+88$8O?]S_UN>$
MN8_VCWO'V+NL.Y-B>.]O[G^Y7_YF42D]#Z,K_*P%U$;T*;X/7&;CB7M$FVE1
MM+=@HV$A1?<[#XHTV DXRT!S,; O A'; /TE48&O0PZ]$Y\1GQ7YPQX/UQ%8
M//W, ;)[>ED_A]&?ZS!R=< EN-JQZA=ML..Q(7N%XT+R0\+>#@$ N[*^$72^
MT"H.*@90RL%"QE\*)LQ#P^<108=X@-V.@'0ZG"32+\^(+- R22+_89^PVXT^
M'*\=9F6Q6DY]ZQ B,4L& ,AF]%2YD8GS3T9@/3U&$GKA8T]&%M #?[_=L^U\
MBM>^Z_=]"TAJ@'\,Y.8GD#KV..$T .F=+IX@;MQO:&#"-'VWI9"6/,C#RUKT
M1[66V+IGRI3TJ<NWM>P6,UMOJ?+D)1OZ8]IC?W<.(W<GR$V=<5+"LQT0BP&8
MS]<]TH4P7\2HIZ.;/J#6V&>V.IF#T"^5M,'-?0+[B$P_+://N)2'M*IQR51'
M$Z6PW*]G6'13S$ !)AI7:<J*\>J!4>AB[,509$,6O[N .A@.N=X_$-^5F"E]
M3G'9":^LX7/R:,?H*Z@4%8\)*\N/8[;KX'GJ^3&WXLUV+$C9,*A2@Z(+Q/M0
M2#E3WT02JEYM(:937@3T,1K$OCN54J^*33T-3'$YC[*N)H8Z\\X3&5@X/S!J
M],P?Z0YA%6#.OD!W=\X7.@Q@T!C H\5(OT?[&$.H-]IQPC,3B&BR\(HVC"[$
M R-!V5I<2IK+!:[7=$%K-LRXL)Z'0<)0J/%@>X3P:H#ULI'0:5/@DE-0G6[:
M 6@3#F,5/3J!R, 'AW](?,\1\=[7M*U\.*S6YWY ;S5ZGZE:G'UCC_2^%RC3
M.]L)>O^@/R@.4,J"+1<]O>+7F.DN= #"=4(/<7R*GS )=\#'+8Z>?+<KAGWN
MB:;WA6+1&?+2WE LNC/KR34J<ZHZM905;;&-T.Q:;*-YP?0:$&54L.1!Y1'K
M3P6%/.L(8FG@F7'OT:!"Z2;C1LDL&8N'%; (-8Z<A)7RS,"EPP]L0(\/*EPI
M#KP43^"IFQ8,7&=+>NYZ</:>$Z>7>4 10D!ILBP3F]Q"Z!"]]+R]F[#"F.)V
MZQ4W).@QI4D0-!XRU+;.YQ!>_7S1SZR7WTX)4%-RDG(1Q7O(IJ]_Z7GTF_B:
M/GH<\E_^[B3T>AD?A-]<D%T@3AA1R@A(ST,@,JHL<O%=X:1E%D-7->B0! \P
ML[EDSU19>$&SD/$]_5R5RYGO>.@:U%5=HD9YGH;IV,?_6O9TNE)5<+F.?->9
M'J?2.K*ZO_L;6I[?7)PLC=OR>"V-&[P#'$(H7.IMX47J)Y Z)'(U_A8^P_(Z
M3<$FNTK&>T.JNP4Z69U^7B#>I<0*$MTN$.T8T!^]!3JU!W2I(70/4!3:(N!Z
M;\9)D6=+3G[F9&462"G!#2^=ZYV'D70G+??T=4'/&W<9!'MP$K@172CX+/!.
MG:371<W[+_A^(\$#X*X@7W"Q0([D@^HIP C ,S!.V!,%(I!?W6"1S#BMUAE\
M>22[!S]OZOQ3'"#. I(\0- ..GV-PY2/-!EX68T?K!(?!)9IN@)X18WTZ:"K
MCC=<)8Z6*G=SW!US=*1B]84'COCCT@]PK[JJ^4>.^ L"PF@5S$.@B@>;+5F4
M-L(2;"\"/?>'GFC^CN#T1RIUAV?N7&SI 4C7ED/.UFO<O2B& DS3L?9E[PM4
MDSM$7W:*!\290+\GT1ZCM4-B\YBM8XQ:.=:<DP[23ANZV_L%4@.$67_3O<9Y
M_%%:='D*.J*O>+)1%VW4X1M6:TRYL5%I;=2!ZZ%''K+RS#K/X:*AX\=0?G*J
MC81JNNGY;I-DCQRA?_@2 RHR_;PP))TRA@<<C()C)!7T+(5U=6/R66!2T-P2
MEP*[7.!G*7#IQ)H5N-:C*2#< 9OD,?#_28<BS74VY8!?*.#XM%L-0--<CK_5
MT:@JZ_9UCTH%MI(UX)[C%_77O_ET*T;NYN428I.ZI.YGJK:EH#N*,//[72U_
MG:=TI%DP2\@$>3#NOMG8!6QQFX4.]COZ\& ' P&/USD)GR\"JO%LN;&EGV@Z
M=8[Q!O21UL'\1<T"8&GR,L_>&N3U5!2P>9PU</$HC"VW=]0 0,IIY"Q.EPA/
MNMU@G%R&+I^C'N6S9$1O-M!7(E4@V<5")KL:/DQX *Q"$UFMKV_O==A=9BM<
M!7=.]$CEAT-SM5ZZ&Y_^;=LSK>$Z@V$"_:(P[1C* ' ,O(3UC0AT#E\Z:?>O
M9%1(Y8!H?:)C.2"\6W0I!V3YZ@8D'RC>?Z48=ZJHF(Q+>(7?P,-FM;Z/>5G!
M7L675/@%8>_["$@?A>LCR <R"_]E1#:2%XL1I7J^E(L2YM!UQH]V@7%R$FX?
M !R()<1(;?["@P2=M>_(TI#QTOW'WJ</UV7@Z4%R<4R7JB<RE_B7K/) QW&1
M3"&-JT7F\<,@[B0S"Z15K+*60#6MD2N6*C.[+<"/<RI.J#OZ8:^2>((. D)3
M99A8Y)7=-% F Y(X+\-'^A_B]@ITD<00H[9 EY<G=N)=AI$B7P0]%64&S.<N
M<L4_45-A_&+F$-EW4"/IVO&]GN44V.MQ1^EP<[Q #K=1@*F_'&(_"+AS1@D!
M*5:;9_KLZR&KY3)8RO1A-5AY+&,?&1@9B+E=FT<EZ\$RT;F]ML(MY".KXJQ#
M&$18@O,LN"8IPYE:LA;S(TXP6+W)1>#A+_^)>Z6NB>@401$QDHC2G+P09!S^
M);!TM,>>J&L#63B\DAG7DS,8^WWU"=$5DGTQ"[8H B=JG5C P[<A->DBL!TU
MT;#D10AU-@)8'X&0C4!)>1OCVMF-#N8K0B_Z(8QD*,KP$VLOXP'E*8>!9H8@
M>S4J0-^%_T.>WI-#, .\I[SX+N"&T%\PZ&?]!]J7/"Q&ALN<8A%U_44D5=&_
ML#@T""SH%PE(NUUPQT[:.QA-)%^(?\&QHC,_S#00R- J%NF=9!D@*"772++-
MHC)$].#XJ6+3GJA,PKX*/F2N*5;. /Z"4W[,^^ >8MH=[>KL2=A$^A4T4/00
M(\@L)-92DY=TL7E0=]Q_PK=0;8>=#'SVL =@<%HE]V+!].46(D"[7JA:WRCM
M',G>.51<KI)\61EKSL6K'"K](+?R0-5]E@+B*46 ZHMF)/V2C+J"WM?H6W3.
M:F&;UTZTBIAWU6-A&7+*!DCK8W&8"[1S(O1D VW/@%0D(] M%X@21V'$0:8\
M$<RB=J1I(3^' 7[Y[$1_XN1\'WCQ,CEQHNB%[K;>:(",--HRVFA-B2/'RN$R
ML$A$EX:318SN K!2)&D[ )!PGZW62R]D64)]GV#5)5TLW9AUI<%EH>]KR%T.
M [TXQ5W(2U-T=7DV5U?7BZ0+!BK*8[RR(3JP"GW[<9I L7D3PU5P>;J9X>*.
M">-6Y3#TGGU"+OT 7R1XVS4H2M)!OP,EQ$@9/P/ F+<-_+7/ ZY^V3LLG13W
M.MQR1-'R,<("[-)2W>-AQ<I6$L_*=A:[4?ALU#3&NS@ACK]-R^SU-(!QFL@%
MHEI9/;/9!H,((HW27 !&3*O].'W^,YX!;1:L%*Z"7"[Z#&(&-&[NX/E6[)<Y
MF&JSM1?L05*;D[ML1F52.)6;9ZZ%,J6<]SA_<:6UQRRZNQ55Y3K"$,4@G X#
M6*BY%K+C9)5W83ZR9'1T05&ZB>P!D^.')+6D]#34 #'-+F/5+ .>< ;U/@2V
M4L85;LF-WX-YDN6;(][;4O_.MCL2OF LX#$KL$L($6D&$*\@XS;YZ<-")3HK
M])D+0;"BH#IY4E'9N:GX@?1Q+=95.&083U8?!R,/8\E%4P*@OY#GD\><*"?.
MSJ<O7>!!FM.MC!D$78CS\9R>-@[Y#3O1 '!=TB'/B2*@:AQ3:DA9R'ABZ/?)
M10"N8Q;ZV^/1<>MNL+<G3+N[#(/'HSL<;1&[8M(.Z!YE?=BQWUV%@5N(D6#]
M#U*I0Y>8:P5,[@3DMA 48UK4C+Z3TL^&O[ ND(4R'7J$^O_>.Q$=9?+"\2,'
MB:Y7- 4HY0SD(".)P-[[]\$3CGF];I:9"MY$>$'=!W[23RV2E)%&6D#%,.)V
M8JX,R)<S,RDY=YJ<_%V\AT[,VIL,R*?OJZ9)-*ZC"S &YGV&A_3&W_74U@5%
ME"%I36T?4*"L"E4FE35\.^997D4,OCKH!P:9Q[ECI,%[+8G/12@RLCR]2_IQ
MQ'Y-Z6,JQ-W&"811BRH3_'3@=M"^M812:^K-[7ULJQ;T3(9)KU.4'RCK!<,G
M.U;#V6U5^;[TR<,UZ(0RFUIU%;_TKWN3U;PXB!V'K=O1WV\<0)(-'R-GVZ\$
MN,#NDS21(&H)*'Q @?(@>Q6"F57'AA0H\T:MD,;T3K^.\!K3]R*O#R- %%,?
M5R]4$$E:AMV)TMP:X,/,I"-YP43XG03,G*U@Q2NHA8PCW$M&Q$X5E%9"V]5:
M2@*19!!2SWC80HP1>D<@)&M&$I$R86KBR\:)OQMR"C/5$G6I8>J,7GQ# H5D
M46BTW_=4"13BBILR"8%!T@GE:VP*9!'D"$:9XX7H-<TXKUK1)([:8R.G;KHC
M+K9<&;:-[N[3V>.(-K$"NF$CK1NG!8\H!R1D+6%U6@-=&HB4AXZRD#<(91\5
MQMTO&+31W<9WG=Y(HCJM63!/BGQ; @:]U+"<SQV7H=5>XL##4:\DM\LL6K6D
MO$"<MK7@_<-0>?OM((F_H%T''L_!G43EW>[2#@!./6_)L]G53;/,TQ@?)E")
M65X[[#[AH*$\8DE>,-RR?!<Y00SU&OFO>QV]&BVJ(UE 4K$D8XU6LD"ZT$!=
MSP"_Q3L'$.J9+U8M&:V%\316GD,5I['8W6Q)V4K<DJH65,X#B^3IL+2"-CF4
M<#F@D[QH<Q&#5$^.+>^D#(59K8>)BQL\/H<97LHL^R) CH&U4;:X&9]EY[.!
M#"./%;F%)1Z'Q/=8)JQ2 6,>PR\0',P'L$]EF$O\)1W##ZT%$$UN#+-'ZT&+
M=7H+LSRS@F4>V\LCF;V4&=\:[PCQGE2I1=;90H32R.PAXPE#S)XAEC]T"3@8
MRDI_*JS;0DD6%NS^5[+6'X(.%>"]T*Z/\]KU;P:U:VLC0*J$5]+*WM2+2Q4"
ML.%ZM3$&.?NK/A;\F:7&PI-C$8FQ$"\P\R5RLP!!0VC7>8R@68A RGFWIGFR
MX K^[$ACE/OX/Q@8@,"[LP2>/X@(EB'.!V6>Z'QS8@LMY'SBF$_'+^4$>MB$
MJT"S[)B':^UJ)_OM'D)%G_")D[B;^UU:CNPN%(>_K%[[&3N06+A:LZ@3'!LL
MC9>RA1A?1_N=5@4.O+*"-_JI@I<3_+&:(8+#KV=L]1/C"C\CR@*!96TE"/"A
M.0CP(1\$R/[S*X[!7\5J@<1IV9<^P@N2"!)W8HC&%S2_BH$H><EWC'SDEA,Y
MF)POAIAI<SB-!)?^RB(U+T017Z8@J'J!O6R.CW3C@C,):<4"173NOR#>Z]NH
MC1*?RYE/(1<6VA2]34GQ[2+&:PV#Q" 0+2'J=1ZKS(@L X8- ;BW=R'\2(O,
M4YOT@E[</M0F&7D%Y]<HF%8E]Z#GP(\7V=C"]*!10DQ\*=N>GO)CV5>C]<3-
M;D_ID&-MR.''YG'#&8[JM1-E_)I]HV8D/"NC:]-#.: \I$$4&Q4R.P9[:;!9
MI7%?':K@#!F\B'4HM*I(Q@";*YXXL;&M"0AH'::806=;5L0L&JRW-+$A+=K>
MX 6Q93O9I5< 79]V\/&7KLN?W]BKPNKLYY]?G5Q4A(I;LY8:DS$72B$[065(
MK9<F8\JCY(\K9XM7Z\_.?X>1M+!T"VLL2Y2>!>,DR[.UP,MS/_ 3?$DGF3XR
MJ(+VZ*L3A$M%Z)T!4O82B_=RQ+I!:3_*<,RZ0JPO!)U9$[_D4#W13S"FDG!_
MU<=!0]$RO2"MFSE+K%\,!XIM"=+9J/3:V:.D=])P1^V65+F=F>OR??F/K6@5
M5#>X<A)FG4YC4#J!2Y4. RA-G#Z@P:4]F :7,B1C?FN_,O&JWB/PG BXF.%:
MID/13HR[[K/9GMW,!=K95,CN%"$Z/'['TE$T@$PMDG5SDHV<I]M#RIK<W)R,
M=M-R!Q"0M)%K!G+4I/S_C/Z?#]]]^/!#6G#G?Z)/'Q8?/K#_2SP 9Y]LP@C>
ML_\3!:'\J<^CZEA-P]2*B!P6,/G9H5<F^O[C@I+[]!?VT2EVV8-(_O3[!:)D
MP/1'U4]BK,YGC8K1.8<P594/MK!EC?UE^L@"C*52$[<3>C*1L:G5S#6C$.-"
MF8$662-1_AFS0/HKYRL9R4PM"7UT$NQN@I"$CR]L3UI;:? H_TSG8;L? (I%
M$)HLKR3#IKW4$6/>SE^@KDDLO9U_QQ"10!<M/<N<1\Q^"0B[@WCR&34&V*OY
MB1>(_7C./GS#0VC=K<_ET=WZ4B8DA$*E4_DV@ZT4@W:#"2%6$.-B;7_P6TO
M;'>MF5 &/&Y'SQF$?>F$$#92*8'YD@_,JI O''P1%),?J38A@R,9EYT+;(G:
MS+(O>BB@LMS(92%Q=?9#D#.UJ*'PY%#0@\^10Q%E<WA=.11L49MUZ!H=BU*8
MAF4KJ<U"_*G$PV9A%7+[0Y?,PCRBH99:.(79MS<04K_0!J!="KN>EVHV+=7R
MB%3E1[?,[%^8#$Q0]]T6RF#^4V1;Y!V)O3S3&F60VKK)8EC12+E4!9?HO*32
M;>N-HEDRKP\K859IUF1R='%%A33C/GNI^E\$NWT27^(G3+[O;^U@=-#W,^)>
M[";]_<Z) GX5$\::342SJBD!!ZOZIA'7H]K'*01WBQ]!4^$%2R"<MY]L@AQ2
M]"R*HHVK@:>F!62^X04I6W'V7IYII#%81]R$ 2E0=4K$"2_!A<.82E=^7T"4
M3%=,@9)!R6EOF8UF$?C$QC!D(\NU_D:*)H][KMS*D/+8YADY/ QWZKD7> G6
M2O .C:TM_/-S$T.W?,<+FQ#OQ1<F?=+U*XE;\GA<(&>=8 :I%3XS<!( V!+
MH!  ;*UB[I#R9IXF?82V]6P94O8RL+S(&EC>2;C=^BP3/A86$;I7<.!VQYK6
M*"I3AZ(Y(W%R^/L9F5R=,'IW%288??QH'(O?0IV?^?LBM1) K]T):6[6\NK
MH1[(5U<KS- (Z\KCH6-L/4ST%QQ0Q@@]6)?>U@]\T-,A7$_ )_8W;HD.V!&;
M[6*6HI$FJ13PI'T\V5_"T'OV">D-5:HY.R3-4=%'>PM6Y<KA $$LR$7V80'4
M"$!>> #_C1__>?QR3'6.S=:)_NR;H)ZAC8 X4K3G)A=I%FG"N>JEX9[20LB^
M3-\9<=YM&8^4;5U5%$::(<7W&N=E?L^IYF-;GQ(;E9'<3'25]L:,2T(5XLG"
M#UB?FX87>MG@F3Y S]9K[":K]=D7E]U*-U 9.3AQX@W\'[3:)X=@9J&@NH8/
M>"KP"V:=UG^@?7D1B"(+IWZ\"V.'_!*%^QUM >9K]MS=JW))5#'N!33-N(<[
M%0O^4<2*, ?(I4SQ 86_X)2]MQ&MJF>M!E.RCF[$8 (_"_9?E+(%N1.28?$%
M]Z=D?IAIH 1!.N=I!N7;W-09- ^=H+@P0PT3%.=FB,F#F$ \U:ITTFR%>%Q'
MX=I/P$K;#T@SL5OVLCO;).4X5]LRG:5K\**#\2L'6P+8O'"3A PR%,)R<&0!
M ZO''&D+?4B))[\XL[%&(+K)DIXF$LK$$:F=([8R]-29ECO(OJ[1RSS&QU)[
MJ#X;[2&Y$+;MG?-%A:;T*X[.0?[849 X7]#.>;%4^&D885+_*]"3AQJC:,V_
MVE0V!UXV ,5#ERS_P45P3A=UX/H.2<O5](W[:BI$I.]R47G(3N;+U1X,IJLU
M%$CP/=^)7GJI%XP:*WRCZ$V<?9+A?+5&MW/A/&?K*!M[XU@E.7>.$BH??T*7
MON\.D[QWY BWCD!,"'4DV0?H9]9"DPHG5CJ]O)\L@N[Q[.76-> NPEO2=,V.
M@7:45BWW?<QQOUU6\@-T_4 HS<RCR;ZRM ^D^T8J>'K1L7[&P11&C,>$_ 4=
M(>VGYI^M0XJ6/<:4<R^21?+"( .<1A?YY=G9Z>V<1"19V1:I?R-3'FZR\0O7
MM,?/H:?I@&[$&CA$IP0%%4UI@, "TGE@KW[)!:O@^S4.7TG!O7]R3&=X&*GA
M<?50*$N92:FOO''@XJJ1ZPTZJ#SK*W$WHOK8L!@=OV0^S 2'F8;P&WWH2J(M
MVD34Q;4A=;9&C9E3,B7%R\$\<V7%>UW%S.2D7T^12#D0F\P.NH1YH8DN[U+'
M#:M#<<V56!\KBV3PS)BJK)(9"TB:9!LK[RFMH1;?A4O/8\O.(=>.[UT$HB9U
M>2FN&\R7J:P0S94LK1II;]PH7NF9=9RY8K^V,9&GP_7%R:+\'M!5.85KPM(K
MZ+F M/Z_MJ'+Y*1HX_?0<?Q&Q<[FR0I)YDK0JB/V,9)70HB+/K/W4*ZVI!5+
MNKTAR<57RA'( (6KT"RS9EKAN] =5P&O3:']:) JTM)+D@DY QA8EINA_=1L
M-)E!@7/NH$S88R!K<>@_M5(PW*# N8@W)K4(5>=S*\J/B(!"K3_C#S"XV#<A
MH;LIYLD;!I)VYR)$5;;N]/D7.XHW7E14[YF^&,4:2[%&\U^8(]_<.5\."D['
M;A4Q![#']!Y937M G/!%"A ^3]E(7BR!Y4[I(ZJZ\1Y$NA7M@VM^QM44)_9C
MA50&)NV0^.X+_^\@[V/6 R_*C6-Y@<]3+)*3*"5/9Y&11K^+/RT\B>5]K$M(
M+\-+JG9>)'A[<&A04<,2E-%.D#:N2PTE2DGP/ \'Y'31[T 9,=*SF1XR27'Z
MV)5+1;%0%6<@*::W7WK[1T:8D50O$M%CJW511>H;4"9I,P]&1ED2Z?WV\']4
MZG;FO>2 (=5;060H?=Z(B(CX/@@?8ARQA!^&7@>6G<"EK83A8(#C4<OQUA^3
MDB6T8MEYG"G$;SZ=+8ZJA[*,63F0IC2@)#^6B_+!# N#N9C8:-[1CU;K#-I7
MK_*.0 ]V719+;0(E+'404&%EN,' E <12N=^[#KD-^QT!IZL*VNY2$N\ZVQ
M8*O@ (:,\X" B5<X3ED7FB;VIP^??C M[WU,%_F9J+G8Z_BDE%B2E:0U;<Y)
M.=-CO%Y,I$=<1U!X,'F!")M$Y$GLMCVAP1H33;IDK-,1%[SR6*:$YT,JAL?S
MVXP_^+4NGIH$G_H1_2J',FM.XT39L.!TH06&P1"NZ0G#@=$@S8X0>N_M'2*Y
MZ>\J$/296'H/:CW,3CK24C ['A\3$N:>SHV2&L_,N,4L$Y0*^=F)_L3P AX"
MA$F098(IPO;QEP86+A/SXD@D#T7;E#@>]O\XH\=H\K+TO BJ&O,_X'7TJ1<R
M!".*!+F%_ MBSZZ[YW 6 I%Q92F\QM/XL'@0-X)FIQ#/Z:V-5-5!Y2F8";0H
MNMA*&!TS[T4O?]S?]GKTP&O1XQXK8S/0G57YRKFZN#L[1;=WR[LSX_DAG;,!
M!.2CE@QU$Q)R'D;PRUXGLQ8XUHQ]^E"&?:K0337NT._ 'Q(,3K>@Z*#C2O0A
M[04G.X$A96$TF3*$?989HS9]EHG&K:HV9 ^TO#EFJB=Z.8N6PGJT%(^$<^U7
M'#$C;DEPV"L6EV0EO<Q%.1:"_VQ7]CD)O>T%/;R>?(^^T^[\A)6VNPYY&L@J
M8CA0JX@CF"<87SE;?/:%OO)BL"R?!?3UQP-3ARH-1#?SZO0S1$-+IA#CB@V7
MY O";#A"%?"#?D\Y0AI+Q@_@4Q$ !,':O3:") 39!EL_CFTDG?1BGN3X9D08
M>+IKYRCN-_3:D5LM@BT0*=H05G$O[QQ+H^5[P9)'KCR9HJC//>3U.7H48@([
M%'N_XABV/$<3Z'F12)KHB1-]]?(/I\KJHR=86@CL"6NO<LT4\'<_V13\^W'6
ME9Z-!E")%[<XH5?%M@<:F>[YUWA"SY2I$@]_G'/Q+XIA 5K&BL;>US.P61/_
MBXS><4=+<)%#),$"A0FUCUR2E*T<_)ZLDQS7@LQ"PGL*0S>]"D/Y@XE+I-_H
M1;&LW.,526$290U[2Q$#5V*)[(Y87YHFA]).D1,CF2=1:JY\3<.2\06(F @/
MK4%LEFY0=^Z\IG'(0N\<.A+V3N ;_(2#O0A#XB@\ZS#:0A+2ZH'XCRI6"2*L
M[OPM_62UOJ4_C=<\>YWE84&%F[[E+ 0G,G!+8/=(9E#*C1;QQ1EBD:@:2PO$
MF&)U=U[W^!&30V>XX(;:E:P*X+GCLO7>IW@(+R<H*=FH%Z(.BC3W?;6N.&;Z
MG2"\=@W KXU[EAH7NTT&]FR%*SHMTTX 1ZE*FYBMP+G@E/-T[3JIX#7+V'BP
M"IB<>,DI,#4+_(GX-B2]_(4,.H**%?&#V4+1S*&D(%D!KJ/0VT-1%/H6$601
MD)V/0/JS1$K%Z.HRQ4PHPZ^4#/CN"7,U7 1_W_CNA@>:\)=?/W=."E?J<@\'
MO3">H0N$>3!+*#J9FY D(Q\<E5R^BP QZD@$ZZQF*E\EI'+#/)I-BY,Q@WK<
M[#7]>./$6$0QB@0'48\%<AYDA:5KCAG?.;5;!&8N]<ACI'IG/]?Z1Y(!6!*J
MR-.U6=SZT08I'_19&H^,=FJPX.>^-EB^'"P?(&#%8 F0_]>WI#+V3S4F='/M
MRL?MD-&R76 MHXYQ;*W_](->VDIIK;JL/6)'.P+I_Z1=S51BDA-6KYF8-=U!
M'W"*_.=\A6U3C;!ZAHV= (4HW1.X,J.[\+G7.S$?J'O";L@( =T9B$+&DZ('
MPEJO"7.B(-R#2X\0](#E68IXY"0 *2N#J7Q"H4=6A)G^Z!6,1<U9U IY[Q4,
M07-:8"L$0CM^)2?>G)]>G%P$+/6<U\GI72W*PSN(I0+U@I&=A10D%6"!@!H2
MY$3U("N07S=8:K:9V@&\%$9KB7[B$@7X$4X5Y860I+E9:KNEIY' S.+T9R1A
MJ9>E2K[YR276(B.,-,K9T@^FYPT4@5L(V:#GD:P/"F%@O?(-!+VTX"A0G+H$
M9 SFR]U(O2+Y"HXD2_%\I_@AR57YD8$44&]VT)H^OHS0B"PX20<63$P34%V@
M0L4F%7MR8T&R/,+'<'#Q>9R3T5#B#8B8B]O*RKE 5P:SZ*/DCQ/04W"T QQ^
M.)GZN)PU4B+VUXK/G->SA*JWYU&XY8KR'D(+5&WH8[P.(ZP5TCS[DD1.&'E4
MO8Y>&/Y1MG"OW#:=EZM6-ABM*5<H94NK64U?>\!8KB+G2%63)S2,^G,(&)+C
ME-9@M:!Y]LP/A,!EAL*AXEU"^)&6G3=VF+7*&.2L<E03&1&3A.S'BVR)/SM!
MV%,=^G+?8BB'\2D=1JP-XY.%O4MWJTL'@>_3&S_^$]#1NJE]N9"3E"P"N@@(
MST@:4BN(-67V#KN;("3AXPM;LWDM8@"TC'"=/$,UL43U-$N9Q'REM,71550
M;6&<P$4(^)V0K'"RCQ-Z 47T2<U6TB [C%'G^1R2_@+)'N8G'6DGF+6MMZ1Z
MC.>3?>(_8?$8]W'<.\%-)XM2N@L[26_,808EJ]W(9]?/9P?>L% O'=)E;_<[
MR%Z5\3R#0"GIO2W0-NV/PZ'%O$L4BS[-^LT-BRYUK"J12R5&O"\;AFOX/\0+
M/#D$,J 8!*H/^@;\@@Y"]@?:E[T,W,Q.GQ);H+0;Q+^ 8<G],-.@[!'TJL8K
M$U]7-FAQ8=0:!BVVZ-6Q-DS%HC5J)%SX"TY)(X<^8U1%&ZINOUA K1UA,-+B
M-[5#@0&08HUV5NHXR^<[1%Y<X?X^/A95 <7D?&LFC5X"I,9';D,%,I T O%/
ML!I%&3^.U2H^TG,6ER[5#BPXJ-,ROF?;'0E?L"P=6/&0)B3D!:(!CULBB7+_
M$ ,=&+0:LF0IC9BN+(^L^()V&AXK9XT#(M@OC3SBF);8>DHK-8K$4FY[T%;E
M0OBAC1>_B)(_;H"= 1ZRH&]2%0\ RK54\8ER3FJ9MH=&/VQRO2RN''<Y]#4-
MR"AV@6*2N4@L:4D3&FAB?8R_HL'53R1%!]26$&(0(5B/*F$$/U&)OS=NP.@%
MJ%<HZ2>!S!Q&=M+,2U.+95 ]?I5CK_RF[P@(D4M@U?4>2Q@=9N1J4Z9\WA(>
MJ(1-/L>>J8)] S*&2[(7NJG-RB C#V'I2XE5,JH?RE@48N>&];U#R N2.(A@
M0C*;70MQ<:?")'PM31:G/0*6!"WYNJ/4C&)4#,9_!B?1LA!UJE*L?O@W'T=.
MY&XZ!OY5@*,KJAR+:?GKK(4LJ,]%^>Q"%_:(=SC[@B/7C^%0FDQ,B<;37,)&
M>@]C0WP(3ND;=8[1]Q!(EA;QC,* _M7E&^@J3'[#R=EZC<$ZB0>ORLQ[1WK!
MSTS_B#* * =(L?#*!H-T'0=9*TV63+-5Z=G^$.5<RV*H'*W.;7:H CI4+W2H
ML.3".!**A@O_V8]=3"@A'.[C%(UW3M#V XE -.Y5?'*&MDW$Y5_HU0S!H:L
M2@6MUIG:9GUKQ %Q&;]++\!3/]XIJ.]U6B>+]66O%)P9D74;43>Y+5E?!Q:_
M-.6-A1M3:3TFN4.J@1',P__S0GXU)51S:23W,5[OR:6_'B0[!LGL&$<KU"H\
MSS J*2:$+5NBQ0&1ID=9;;.VZFY<DGC#NT;0M_E<0E7@G++I!*[O$%F88,CZ
MYHIX6O; 7G7S--R"61FA4%1\<WO?W^&HA=[PW$D@/2MI2(T@,7I'Z=+#W%:X
M;&_;VN40M>>'-$]>VJN1/M[@&3#K6APWN+050(+KX_CXY<I)]A'6H!O=/FBJ
M3"O02"%.WE*"6U8\(5HOLU=>GH42R);)2X77E,=G\R K>M>S5+3M;I^(X!H
M2Z%,QW19,F-.G[B:LACN%QG@15?VV?4M.G&(NR>.YJFP4T8-A([P!JH(/>$T
M->\*TUO^SOER#2H9O=X3>N0_T,$!?T1X[<"[J^>5SU]WF>Y1)I^1Q0+ =J=L
M0'WWB)L(-4X@ZXGS8E%!&&G4"L]ZYOE,AX[0[G\V:KXYB]TH?#[E^"GTP?:P
MIQQM><PJ<5CV&U-CN<K6+SO9P]O 7_LB2@^SGEF<ZHPE%.N>=X)$+RC3#1+]
MT&<NTGJ:L= Y"YP($Z2;6LRI@..!9[ V#)$8!KJ_G;1OB0@([V;R8G0YJ!MQ
MF/*&/"+&8DF__H7[+)3F@YC(VW"?;)9;^MAWG7ZAD4 ("4KFZ\H/PGHVL5+C
MW^B&OWL.[S;A/G8 XIFJX0G& :_ <<&25\'X3@GW%^G3AX__*FJP($6:F?3F
M*Y]8;;0/)#M!JI=R8<TO1N-2YT[QZHDUFXU7;9"3C\2E9D)<KNEB_ T[T3DE
M.-B]E3%20IP,LTF"TU5F:ZR5^8K]BAES'\/0 ]C%!2*.^R?S/&U>8A;''>\?
M "V OGI9*.V:R4COBC7.9/<_8'HKJDP%!V2CW>\CUB0&0I"P1']$2/@,'<CX
M2^VWW\DG1\PS8_PM8\X) J@VRBVN,7JF*J7ZO?PAI%)$K%0IE-,!H!%)/]9-
M=ZGLRISO05&3=Y$ &7%VNRATW,VWKV:EB!.AUG"K63'T?A=B'J%K!'V_EC')
MA#73MPIF<AJ5[GZ[^\?>X2!BR\<(LR4YR&G'*2.7XY,YDK;9!3R@.&*!"C$$
MS)JB:>=V&E <?6U5R&2\<BT]"1W?$X&XLEAV)@2]IW%$]"!C?;62V;D@=8N&
MCQIWV"]1&'<N/-K@\6*TYR9;)CNIC8"V\HJ&EE/;C%8F*N=XE35!3L&Z*N+Q
M8PU_J<^\%= ;8T8=LG)2H"J/=SQSL4G.(R^=RVEP(>\B"])U^BIDKP7L%%.^
MCWD9"I=Y"$"/#:AB#R974)#Y5\;70HI]?^X/$3DJD.^!F.' V2$XEV8>Y;F!
MK'<;S#/]A;YRJ1(;XXO@A($W,\>W2(#F*_ &0^H@]L[#Z'P/+JZ+.-[#LZZ?
M(9QW*]:>0HVF3S'>&T<Y$#V]EA$@.>$O L3[%/$&HE=Y)LE^Z0N*OJ)8S^CB
ME0U)[DE2N2Y<,33BW,HLDS4?&KE:C#_ P1 0/$+,K<]2:B%K[AEZIJ/!-79P
MF>$X+8#8+Z).T6?2BN<:85W,6-2"LLS[0FEG*"NX> SQ#K5*E_,? _UDS,J\
M"Q,P0D+6\>N:]GPE3S7]43K]3O6ZU^I]&JTN=!)2?:GGDY?1L/B<;?&([^WR
MFZ$,AQH@9BABIC"=D%-DCO.:?2&/K[ *8- YJ4PZ>>BV84=%S ;H;N,$(MV,
M'D9K3%_]],7/LT<[7K-WI5EG$/6Y0*J/KW&8!D]N5*XUQ:S8>PEE-TU]5!R#
M&GAM!:EMPL.? [Z "Y$05LI,A2MS'7D/X<J3'2@J/#A4G4>\6FM6#?:V^.Q\
M\;?[[7@+,V4.MK[&GGB9"0:_IL'-7":9X0G4&2D-A]G23[HAT?B([7<[PH;&
M(<<.@<UQN\$X2<N*Q(,DY9[BQ/$)$_4$1PDD>9V$@<=!XZ">7$A\CX5V"2X0
M8T.5#I[S.,AMIG61DU+KQ5[6[6FXA;J.KLJJ@4/83_8,7V03X8Z(=+F7B>Q%
M!0#X:2\)]&+6W&!(2#&EDKJ6F:311ZP#.WY40W)FH4::A36^31T"QC.6(W*%
M!W 4FP:M&91QDN$9'>/ W6R=Z$]KN572Q:(09F_Q(U/:.DJ2OA92S%I)<C:R
ME(-NS%B@K,*LXXA(D6).V?BFX=W<L/ RVN_ M<X$>:3HSU >4B'*6.7I?F%E
MH<DR\);>U@_\F)6\><(#@/L)TCPR,4-\9D*1HCQ9NK:0_(:>+!W&H5$X6V4%
M:NK+=,G'G$OMG%YE%)LJYQA-.F4/ONCEC^/;/G-S[&R<K6/LTNW.I!CDX^7?
MEI^7MU;*/(-SN:S"LY:^U6L?2.=UP9#!XL&U1*W8:M5N$V++^Y:)QSLHKV^]
MT//TYBMO5A>LGFC(=TB[,3W-[,DK/#2R\!R]Q2Y]E_EJ!G3_Q+*L'5QD1-"?
MEU@YQYTJU$<I(TG:M-/.C&0Y4U/MG$FOG7'@MN-][ <XSNRZZR@\!P@+^O)/
M<\*[7AR"/ICJ'_Q Y(O0'A#K ET$#"VC^.-,!CW/+[ESOLQV.+*[-61"PZ%$
MQX2>R63<V/ .B/^YDS:/;;6 R-)Y2206;%.8NXW"#H/*52P>UD+$!3I61<2$
M\7^.4J=5PEK)?,:=@+,4.).K-G(.1L\Z.%;8-U\T.Q?P+^"2\77D]XNF5M']
M"G%0("5CM /:>BS_B#6VYS7 \J4T2IGX0L**% 4Q6:R@Z^W=A#W%3JADCYWA
M-C*DD* U!_[U\Z=4"$L&P$%DR<,U*EDL%9;IN_67GL=4;X=HH09]H3D'W-DI
M?]E8"&M!OU?XN0I_?$A,=MI--2#[0@&OBS\M^FU,RW\00/_2"W<60D9[ O]=
M]H2ZK"C@GJ+_,>NIQ@)8W2038&T4A4QMXER.-629#(^F<3O/C]MJ]'$K\]2H
M.H$#F"M/\1I'$0MJ%?BI\2:,DB/ZC?&@2Q.R-7BBM J1-@R7-Z!,'JW61_>Q
M>(^M'B"$$=YI=-5MX+8[#Z-+R+SK#[#&>PM9;^(UC61_D/(H>V1IC:Q/9 .3
MS>) Y*MSR '9Q](:AD(Y(#X4]Q,# EX(P@9$0]0S&U]H:40RU^?J7BZ+]J-@
M^A!(:U3#@XO>Y+TBW+22W8*<M1"W@03)Y-,7I#&Z)&7) .EGN</N)@A)^/C2
M7Q15CD!YD5+JLQ**-,MC)W!W:,'R^'120.442U0'QEUAIW@789?72.X:8:V1
MF#*[NK5#IV/)R-&+]8P>F=(9K_",AIK0&\4E[[;0 2/26(V,\="NTV)(8;/!
M:6E\QJ($HFA.<I&6<S<GF8I>Q!9+T[H/40639S38(9ZL:8!\05EEOFX68R0R
MK7<<-G]>PF8=^C7BSDLLTF+Z+!7@:U6MII?F3C6T+<M*C%0YFIU6CB;,E<9V
M,Z6Q754:.[*4961D0)0CJG5E'@Z*;!)71):]OJ//*1Y4Q#,?^N6WB5+:*5&1
M3S$'2<A80A1.&1'?W]7\E1XLDM#D.2]6=$A3I; E(0!1#(J'+P/OE.Y4$C)-
M?8"T&TF8/0&\E/2L!"(ELFA4;27<##M)60=[K6#6DFWB9+46-T7_7>12<L8W
M3B^>U<,D9OJJH&(<^HA[T0$:A9[M],,-U<"@TIQZG?0#S$N)%K I9B1:+OQ=
M$&9Z6DJ: 5)H[RZ+I5)/G'AS3L+GWG$8>IT%((H858O!$VDMO?(X%3:R,A(%
MRJ?3UP>K9#=,&J_HG:$1LVP4WA627;T^\>7,ET76I,$W,KYFH49"%!"T&5C"
MA-^$Q*,SQK&>KL($#Y?Y+""Q;.8X&Q,I8[Z36+9V3B5#$F5M('QW:H?O=10^
M1HZQ" 6>=90^4ME.N2E6/NY<^#@KGM;3T0/;E)3P;&4C!:$0/VENRLH\HQMT
MB^[MN,Q,2IU/*6LK_>V]<6]:37K 9<]0M/I<#JN14B:DU,]53A]-0=1")>$A
M[@THC9O)]6/)"XS^;.215WM)S)[5D-@>V8DY#!U1%&+2+.OO;],,LW/\UEGC
M70@%Y2XO3P8HE$G)73-R"T0)3IUUDN<:7=+_G=BY0@?@/W=3IA2Y',:O0WY@
M#U$U>VD%Q[D?OT1GU>+37A:4.,6RI(7(LI<1QZ7XV_W,3S70VW8@MPT+75'-
MY)WL[EL&V]R L_XZQD"_<SH.Q!AI9%1H40-=6%;\WME4V;0R$%*6?$^[L+#O
M=9?D.2L0RTM]NOM>6K=R2W*:LK II3H#0<A8,K"K6F8]W#V'_74D20Q1:M/F
MFA09MJ,:]>8\IQ@I"9+GT+A2=!*RJML<I^W&C_]4&+&G(41M]$2[2VDC((X4
M];G)19I%0K]STN8M'HX?_>J0/?Y,[[Q]Q$SWD$MU'X0/4*4++/87P6Z?Q#?8
MI0S[A,?GWD#J&]P6QT[LQRJLBR-_Y:_O/A<S,(@8APND\<B3LG0N$6<39?F$
MB"'!*6*L9O*W.+NHY/*W5?ETBL-/1AWYKW+(,T<=SZ2BVN<:9N )>.6><):O
M#%- _QK['K8#]-DJKD^A>OA;^LEJ?4M_&J^ILDA_QX?HXY1B(:%26?@8\!"U
MG94B-6,-HU+Q6T=0*G@3S@5S;6M\+"Q5];G""0047$?A$UWKWO'+?0QF^8L
MX&[@'=3[]9-U><8;M&:Q"RSUW9?=($?U\_/\12::M+(;P,EX=\^+"7^+5&?*
M<;^ 8YKL/8GLS<XAP!X5L8L,E->634C69+EV7N"D'B 70%)$.TYR'A*0'/."
MFK4*> /-@Z;I58IBS\A2'1\Y1+&/\BC)&8I%ZB52UC);:=-#JW0R_K O/'N9
MMH:. #J!#H_OHLOPD?[W'82[H+_07W"84J;%S$X-[CIF5AX;DKDQT$B8H9C!
M#0M^!HF^JP(G43]GW6K_UH:#VW=5I5[[87D6AJDJ1I,_KF)X72G8&DN!T[(_
MB->.182=_T_L"1]#UI<Q=+49;0AR/HU8<VJ("]>2E\?V@$A3NIQWUB_=(FG/
M"SDXBX*G)UO3QO:.R>((4KZ9$PC.Q-Y(8#EX1$@FX <$HSZ5\*OE%K)P_ZD>
MR73A7M'AOWO&Y E_AFI^1L+/M,>PSL&"^U]6P9BHP@:&1#\R/GWX]*/QA(LH
M=#'V8@!-TP/5)6#JP>5V<[CLC#A_SRM07:A\R@N=[JQ4QQA<1E(FGIY[$"O
M6>,V&J5%#H?LF6J"(Z%QGC!K(<O7H:>LTN-='VN74%_[2]H'.VTSO62N&GMY
M-.557-A,V*_5,U=IQ?S6E>@1KQR;%7ID'0RM:L<--X!3I>?"H\O07_M.>K,(
MW"9-'0>3(Y5F2[4UKB-JOY *5;\TQO+2(BF;Z0L&"4X6!17>FO5KF@-:&M"6
M1^><T]#T+)P @<0"LM$1W;QRZ=ON)=8[4OAL25BVN\Z^N$#CW27]KW%[U-C+
M)A=_;FG99()^Z'-BP" K@X^38;@F18;M!EEUYKPJR"H,S!64E_L$GN.K]0E=
MDWX_?R>C@-:.RW>]17"V/B*(17,9!H]'=SC:(F:> ,,>(S=EUO4CIHK_$>O2
MLG,5'-!&0+.%-857?EL2$CZS=P#$:HB5"%E#UO0W P.@3^] HS#?U5!:J-A.
M_H3 (C@/_W_VWJW)<=Q8%_TKBG7.@U=$C]?TC#VV]S[[077K57M5EVK7Q0ZO
M_3#!DJ J>BA2)JGJEG_]0>)"@B0 @B)(0*(B[.GN*@!$)H!$(B]?IJ4+[E+T
MP!6:S@W6,_"#6PRKZ)D[PF 0-,%:!53=X, 0X_!!9G>;+!>B*@/(L2XY4/FL
MZ(\KOBQD6XR2$":8("J3(_!M+-&& #+<QGB!4993@P;6N8DA!ROCO9*A:]&-
M@CDHI(:3(*MM&U+IESQ=!%O1B;**;2;AI<;+&U<WDC #_&2C@"1\$MP"!29&
M/H_!O7J%\9(@)Q5 -"RCB#C=2#[UJU NRF8Y* D8S8AF5-'<S\V=#)LG>XGQ
MJMV2J/_P Y+7Y) ]#_C;!\L>]OE/,]'6RN%\6S%[:!D;$$4,QF@T3X(KOFD\
M1KQR I5)!6[,%G]F])23![P,\.)\0[WBJ*LY)RGDG&R+D8^)J$A&#XQ)HI,'
M)HA8$>YW8#K ,HYIS+UV'AV,HDZSX?R>?%29]V)=/'(\GW?-="/A^^ 6G!*Q
M[3Z):457"8C0P%AU+^S+<DBAC-9(S!R@V(W DZC)CN*K2GZX [%C7J">=4-'
MQ0 _/!;)[VE646_I&*-%IQ\VY2H6$!N%*C@IR_'?!ND83TYXE$01(DE9#ZRT
M2W]_ASCJC ][/*1$&BI&BY\W3SOJZU9;0M[1CJ8:25.LCI=4KI':S:P:$J&"
ME2_=?_[I]3G,^QESR !PDW[^Z7>O_\XKHPYV$&U,/W(R<^.BVEE+5>V;)%VC
M,(?@N%N6&\H+S[.Z\_SM3JK.]UG<EH+V$$*-GV'1\$8"WYDFL4:IBI-GIM7)
MA2D31"(61=:R)LY70K40W$H*0>>$#R3(_OD]B)M+5%N:+WCP_ JK+$74J=5-
M38:?P?@S(085 "P?GUZ*=?!@DWO)V@Y;OV7G%S;L@@Z6B)%C2J3G0G(:I(LY
M+##PTPNE1T0(3N)=!F;)?BC(?.1*QCX9>P:#CP1\;)^^.MXQ_@*%KA:A'5X)
MG4,:78<BKV):;EG#X?V@.9RD?ON0CC':LZ37G*L>:3+0^*B%17$GEF-F!:BB
MS& L"SWQ<,5X)=;"&QRO8CB*N?=S]8]=1O(D($:5Y_RBF0 TC7^N>7.5!;TJ
M;RX9UF/9E)<_&#'YXM [GUV'0IU.F_ILLTQHZU-@]"*A7K.N+/W;RKAQ"_]Z
MRC5[6F2A)U9*V#IZ-56Q'=]39#/0FXSG^\R5N)0PY& N-UNSCV0L'TT/DJ1&
M6(8'<)R+9B^W7Y;X,FK=AOEJ1=@81 ]!N+J-F2K1_[B7 \]@Y!^PPL+&/BJ2
MHC9J1CM53=UUOERF.U3))V(0%&41Z_)W=A'7V;=GP@<$"(I2-15^?VH,JF&R
M$79(4/A'J%U.KHT[E.<DU(0$YC_M7GFJC)4+D(Y. D]HX']6?F#8Z] R76Q;
M,WH6/)%E)@P\CGW*,EWB;BP7JR3N!S[\H$0]?TN>WY-=AK<_A#V"]SY'*+YF
MH8DD0H6C6]DQ5/WTX^<_S?CX+ 2&?V%02]6(]'+/W[=DQK\VPY^;%=_3,F"<
M[3P.)VI2"3B2<X[ _[."([IHV.&KSTG ZFY2],\=BI?[7B#L(M9<,>)HZ.O4
MA%74T+U+EO09_CWL![-!+6-E;5X^\!'1PRT!8GUA1A<?]A,WELS^+WQA>& 8
M8GDE:A  E0)H2!K&RW ;H?)'3V!K@-C)E^T*3WV^HC!#X(DZ]-59X(&77YD5
M7_XD_K3X^(Q^'?^2?9^XPDZ-07+4]*#DQU;@$OAP \Z-U8#<@-B4YS0 @]/3
M?O.:1+WB:NA ,SJ2MU..QIQM,VA8@Y+VW"/WJHD&5P&+HZ' (Q8X9RE4#T&:
M[TG:%P5DSR[VE=_T3<PK J.Q-L_K0)&19^)'9Q?[VF]/B1]L!RC)'XW8W6M&
MM)+\&C2Q9]RGSVU:C#8CP\U@O)%N3_/3:C.POZVX\/@EZ8=G@RKGHTG^/1H<
M:4$1<"O)MAZNI$$CP=JOD@;#LTA7Z&)=,&?$0A>R!UU60'CW>M6+2.(E*+A+
M*/J^A#62YFEDHOB%DM)C)+":H^*,1-""K[$@R/?7W\E5'Y9E=WH5+R)CSJZ_
MS\I1!ZZA8Y.4R!D5M5HCS<?C3S]^_N7SSQ:<:T\O,QCKA\\_'R4MW*NFM@1P
M\D83A$\HBFBQVJ]!^AN"23&0ZE[J3! Q9]"&CWH\A'#UE Y(J"B&Y&C\QT.-
MF-JE)6FD!,F#(YJ^!M_#S6Y36-;Q&VF9AL1.]'BXU<Y""!.;F.",$*8V>QS!
MH.<+3RO!O 6\ [QIML$>MXAF6&_>+0>-7R%>F:?W),T!M^\*;1-\!_;%'R#C
M_9 #$."*C3BL][<W <7VQN/,"((A'\GO>5=ND2;7A\TM*$#(: HH_ -R3HM'
M_V%E[*48=.47:(IM\>0O(RB&Q>$;DF(YSAK^RDP@^S:N6#IJ=5R.F.QZNHP
M,Q>:KOKPZ";<84?3N.#>2&*"\-73J<G2PLH!Q[);VB0H<D,+V9PO&F"5_D^H
M%D"9(Z,L,B)JG$@0^]35!$E!95I22:,\=O&0"HD(JISQP*U^\,-W-33ED>"$
M;5!0"3AC9"Q' ;6^3^(BDXR&6%AX$I(W'[MZ$'\(QB/X&VP1PW:4.!X/0/D=
M&W+PH@BU*^>P2"?=)7H4!"@NS=&BM+XDR>I;&$4 YEISU%DK",6_0:%:&XXZ
M-Q6A!$=[O1('6AG4X;#HQMQM-D&Z!YF(QP[?8AX2)C@+\F16SHXS#M@Y8LR\
M8Y:QS=2U_(O(I*+^BP/?.)^WD([4]]50L&(^'F"T)3(TBSG&<Z&TLRW6=.,6
MKK\R*[OO$[9BRZ,OU$^S=0D,'A1?&M8L-@BQW$Q1(7+.B!0$5_F%XZ-1;9G5
MKN;P:-*DC.]MC*],B!#NAPI-ZR6'?##?)Q]5YWT[UKP5-14IAK<R<:$GHB4=
MG5<,V %2^.SZZ>'A1(@UKYX)1!=I&0SJW5493=M<X$X'355-#G&OR]P9S@J5
MYK]^#?Z1I 4N=5^]A0_D]XRCZF1'LL@R$-M'!*\_NN<XHM+B-0K?BHK88,EZ
M#C>XR6+]A'^:K6GP;K^(8%9IM/A\!=&IG(!0.IS.@11B$&8Q5@BQ&W9)T*=;
M6=;@V,(5QP!Z;ID3"7,;0]@9+5Q2^ (6:VH*6J1@CDC1.XJS\ -Q@U,._\0S
MO8ZQMDOC20_>;L)49I=8R+V10AZ2M"A2;4B8#/_Y_RWG,Q,F-)[CA#.+5--N
M<*MOY1>1$W+Z!S>84&%*(AYZN1MXP,?@;H6^\Q4/-QMHT*?+%5Y'_.>2A40'
M$8!#AOF.2*=O27\B^ =FQ1=FPB=F^!O'1U]D2MHX;JQ!:*S9$PI:UP6MH4!K
M_BT9SHR S]0CA$7UU?Q H(5 !)Z\$/_LY;PC[93'<M#W!87F&&#N<;1'J[;E
M-\_XMK()HUU,V",0;5GAU<(.?Y]0Q;.?3>X*T=* LY2_6R(H/0RQ;T=*'7]S
M*DKL"G4URV\,GA2C3N6;+_$-M2-9I/--DN;AO_H\!_3IC 0+@']M)G[NB!E0
MC7)\KH)$G1JQ<B@L)U1>$@LCL:+U 82GPU!KW">>ET=->+Y34*WHK21CM"K=
M_:AI8OEJ:1H=Q]<.?27@KI:Z<<%V>V_$2@7/TO#_/V;_[X^___''/T(%+^IB
M^Y^S/_[XXZ<?Z?]G&?6-!+O\/4G!\?\_9Y]_^O2G/__YTR\_?R9>?_S/7W[^
MPZ<__/F/O'%85@Q.2N1<*,6<K&?_>Q>CV<\_?IK]].-/?R1MKM"2/-QF/W\F
M/_W#)X@B!"L>%H_1L.!HU.1/J@QS]CZB#*58+D,$-O.6S'=8,\ 2<SF/XQV\
M.BF:(3D(AX#.-#(X"-OJ+IF4381&9W/'3<#G@GD'D\&Z*$.#S& Z!)9FZ/P/
M%SP3%?J,@ 0*AW/&)T #^3FOBCG,Z"1*V'8RC4$!C1RRJIJG8KZW/AEMKC$"
M87D<[ T#2+S^O@VIR1GXT;G2;]7=RP 8"VA)3# IUW6LU+&3<5>)6Y[QP8D/
MB0T__(:7(#,WH]@"0=?5Q+%=9\LT^789!>&FIX MXI^60OQ36L:RA<+$BCH8
M8F1;)$+JLM@V1*8W6\+\AA6XGC"5[3-I,)D0&"A.B(=0%F&"\VHL91$H2*<U
M(_.: B\K =7"1AK>+2F%N\*/PAT4^UH+/^OGK2W+PNYGN8"K=<0$1E7:&GA>
MGV;L*R"%A9\/'^N5L,1E-K7;S38(4UJ^+67^WEY!0\5X)%V:EY8%P8CP\=B.
M$XTW )%L1<NQ"S0Z873B%*?C'R61H@G"F-*Q !=8K'NB0S*[V4&%/M%NQ7)G
M1D9Z^S2C,ZF8T#A"A4,8.!?,4^'#,0[5>3>JU9'[*R#:)K.025?X/^ %A=]*
M8UQC-FB(:M,G8XV6SVAE%031I2!C8$%5ON)_J+@Q2^\A.T[S-=XRSR [\_GR
M/40?J$>XO]0967[R4R%TR%=G]+,SX;LGP@Z9G8R7]V1L"42VL"3164#8DE.V
M!.7W1["+C<*7RNN!T9RR^SQ/1(I!)N?O:+;!-P2$A5&>C)!]0 \KL7A1$]2\
ML" ?GHO ) "SQS/35CGP<9%5RP]AM&64MH;9W:%#\F)/H[RC(.L3X=T"H_NZ
MGY'/S,AWQLA.N]^!UX& Z#:BR;)Y_K?W</D.2*<<+FB>HJ\!X**$<??5KIH@
MZ:?A<$JCS/#"Y[-O\/W9$J!6.<(0EG;X*!=S.!WNU 2]'?8,*^U'Y4]4V3:+
MM3P0$\O"?$8^3,O9\D]CW0'-OI[@MA%%J-]'2F?^[R%3[Q!)5KL/-F-!L"OL
M:T#7;8XVO>Q,&J1\XMP@'S@Z"MO,AB,31T+X;M)D(XNMLV(/*%-U*,4E\,0(
MUM]AR(NJE)%D27GTX*B50DNH" E> -;;A'_UR5=35$0=-(^J1)]^1&\A)-_$
M.8@Y"R#:Y8!$</I.0>1B\J45YS6W7"A8J*0@Q& ?"2&%3>TUKP#JC'CHN:3!
M\@>@$JAG_S',?K-8#[PR]@P&/S*JHE:"QB_G(#B068;+:A$7%0DN@BS,7N+D
M%0)S0+3>QMM=#K[I&-3$P$H6K8 8(GKA^71FBUBH=T%F-!.G-"-SFE4G-59&
MK6L^1G46?I+S,&GP\)-'3-3$G3=]1']'0?K\+1G"X".DMHL?_C2#;PZ9+#DJ
M)ZI5<7_ZT]!$$61@V_"%%/K8*8BA7;I$MY(!<2/YPBW3*.R\Q>@(FK62<WWK
M<M5KSF4C(A@>("?>4W3P[=)#9L)G3X0;-;GYYZ')HD?M.?C.)GZ!8K0.>_FK
MF13!8Q;>VM^Q8<>2*):HBMH).A)*JDX84BP/HCD8_#TA+P^^#V^F*E39B[VL
M&GD/@["B%ODHIF'F],Z>$Q8URZ/-/M!AQ0HJ*8PDC"@H#5IE^7BL1V?ABM=<
M#&-BX#\Z8MD"\G'!C\]&GI5##UR 8KB5%&,032@<*_Z09N3PK50!H.N69B<M
MI%*.7$_ .1["I 9^%5FS@$1 'QUU7,]DN63%P'6$0#*X<V -%:[&74\75>]Z
M8Z.ZLL9G4R.O;M;"JPO&JYDK7I4^""$#D24EEIFY%GPJU4QIGJ19?N*X"(R\
MH$T 0:F:Q&GX /RM7Q:X,"S)61G%SF^/F$A"!Z'A$\^!I/]X2*(0E&#VYXBN
M&@%W@]A@)-"%=TF6W:-\L<:/&UL0'[1BRK("9!CA[QPYN5&34FK9DD(V_@X^
MA5_:^&LD'ROX?N3DBSKTP3P82:^6/2!(TAA *.?S>'7-\\;Z*=@/@A[J*"_-
M/J5&#T+RC4\$DCK_1$B^/GZ2#9Z)&KK'2 6A#X%P23 :*#"MH'A<!ML0SX"J
M" +0 \V*XG //>LCD.]38 8>X:^&=EC3?"R.\'!RO(EJ;"F^W4 (8=_G^EL%
M,(1GK9TJEYHE4]HVT9)QB^4AZ/;4\.5 #WWHT6I?$("<[F@.+5R5S^]!S" =
MOT <50$_:2?Z^/'I)?LT(R-[@,'IB#6V# J?9JQBFS!3IO#D>*XE-">=;HG+
M.57&J]),'J7%1P??IY64 /Q)/+V,(F@ CGNZ3=CK\S8FB0'TP;T@#O!^D 4E
MY3OAJT1?6 K?A0U#DP(0?>LG[-LGP9"HP@M\(8H?)% LXB>AZ#5-'F%VC\4I
M\4*98738_AC\TNOO9Z'54X<MU-YOMOQ!/\H4Z9.X*/70,R*%/;#+RA%N2FH*
MA3WPH6$)%R1!OE]]FDK!$#S<6.&)/,G?;N1" 1W@,H3!,FE2@(I1@A=L$R+#
M>/ @>.9.DJEWBY6F\'"@OHKUG5JH@[<440'B"GRP)TWLB-VIP ?+X0<%'QQ>
M+_\KJ6_?62^7FBWKKT4Z]N1XX^JQ2*=["H_%?HQ7&# 43\5Q-JD$G[%O]+"B
M^O%8^MIUD (&>H;7B*SR51CM\MX $BCG$8OX14+-=)]F*SKTD5#$O>QL-#B,
M]'!_FET=%2&B"J.A9B3%Q191HG# NPT<R"/N->M@K0N>5G$'>-:/4+1GL7[)
M:-=>V15%XDA$D+)3&/J'9/W#+D,#/[_]9I)._)KB!0<*O."2Z62F,S)5N+U>
M,C;(-'D^!O!U(MOPQ)3&-_R0T5Z7@)B2HN R6?4K@@&:(@PT@Y%\G7$TYF0U
M.MBE&&-/P$OH2UW8SKS(;4]P_B2&K05*?36N_W?W28YF?YC]0(5#1C3#P:TV
MX[*B!@D7007C(-W/UI!S3(JS<#R_I8)-I\4/S0WR:5;Y[DSX<#4OFW][+,Z(
M""P/:7(#):H9;DR_[9"0:M>\"-\1DJ-=33SVC R.%XP06O_QXSAT:RL.\LHL
M5XC^B6?&V_,K_C:6'!&;U1>%"[HN$L-Q9*(7+(K*ZZ*EA&-1\^=W?$[_3L)8
MBJZ%LAG&,]GF' 'UG>8A8E[=)4$,09LH8W;O0V5FB;*#%5,4$N2)(BX:OE""
M"/\.CE::!='@.\<NI97PYRA*OI&:3["T2TIF1(8?@:@E0JL,0,? #)YQ"WM/
M<4\&I5!C$;.N4[J.AJ!(1@L9L705' TQM3(*:HH<^J>^!M\!Y?DB2=/D&S[[
ME\$6_R;?6W!4"=6RR#=FK_PC$"M(OC+;$3#*"!_L8R:^S:/%OC,K/C3C7W*@
MD]WU3/F3V\;OAL],(S7CBT3+.7>#7D+Z*$I)W2# M[M* )OU8.6@'(QAI-+Q
MAL65YE'J8B0\3U2 IU"T6X$2-%\N2;6@AV#?%]:K&%V=!P'> O)AT'("]FE
MT8=OGP [RKN&$C\7,P-F)8/X!R':C7]R]G R;*A'>LOWPK9@AVY7#!_8#>Y%
M6DZWD<%]O=E&R1XATH;S";(^>J5VTX])L[JQ/LP^R=R>16X1?/4D6%&IZ<5K
MI-8C_XE*<_WT\%#NDA%J&V]W>')/R3K_%J2HABS4#P&2C3WC@W]J%B<:"PER
M$#HK2>ELX-DS6K['292\#:Z35,O\T*P1<"T\I&@;A.#Q(#$+U ]2(J;V=.DW
MB@&5'P:;$?DTS0ZC\1_,K20BMH[F_^]@,N7Q'GA-$::+R@/,0G)8+>D(#;B<
M%=K$X3I<TG^SJJ:C@)0XY,RAEN4BPHA.Y(0Y5'7+%(QJ1V#ZQ"X26@5^A/>]
M//?TOI]77ZXYC0*>:).DFEK,$F?K>;/WQT54S1330ME8*>\6"=P2Y8_4?^]
MY@5Z"^.8H@Y'0^:Q#D?R=;SJ0/ U@5\9B]HB3J.$<C@44+<!-4MP&HZ @ IR
M;AD&,@*VR".B!7IX=%M_95G$T,#Z9+@<WAAMAPBVB_A@LR+D<.AW#+%CE/6"
M%VN93>/0A*JRQO1B/9.;<8Z*+E\*: ]"7,W,9$*?(YB 7L]IT&-9O=&E,.9Q
M4,(-7VVU9.^3F%1$8V[8XR!.O(C$LK F%(Z!$T-B.9]1NF&OMEZ2GH:X"J.-
M(^GMT% 3%926O!SU"$@094)C+4;3VLB7B[@6V-/]2YO78]>%<-^CHZNA7).!
M*Z% Y>!'1UW5'*-9-V*B(%9]^J'9%F#YA]^GI&SO8DWNS+N>7FE: AC30#TQ
M8Z+*XH<EE"<ED4HKM+K8OV3@EBO"J>: 4DT8?2AM<!/QX2&?\7?PA5D8__M,
MJ(Q&OT*CUZ(=>>:"\9I$_>[*_(?AEW4X?HA7."08D2MZ1WG!:[ABLH/B X/O
MX'=0&0H7+#CATA!/8ANA\D=/ /H:I*OL90L9V_-5LCT\]8U^$>@M/S K/OI)
M_&GQW1G],/XE_?3L_^8IE*0,HFQX?(81652)02KX%)0<V0I\>GKY- OH=T:'
M/Q""S7O:G$4<AT*DC^;!LT10W4,G0#G<B;?4"#9G93&EGMY';;6H$3V+UNES
M7#2J +;YDB2K;V$4]0&QX6,,#5U#WAE%09<*F"/SP645E]U-DDKB^'H7=2RR
M@RK!'-0'-PNRFM<7@J0%3]ZP":JC,R<2^$*+7=;!0%D<T#RK^7H!#+1P=0HS
M."W^U)[D!^Z?5XE+># C'V&44-U;+-+>KY2)4-$[907+(6!T0'W3)BV1A(Q*
MI?EC(**V'Y5KLA_<AHQOU!<+KB42A4'-0\,[GGO,N=1G\$='"X,K[_DYUN0)
MCD3X@9Z@9B[1#:^_TYA4V%8T9(YP<K&N(UOTK>+-)P)B3YS*K)S+C$^&[D9A
M.M"I"?;!M(TQBTRX9V?%9U+CZ0\E4QN%4TKFXI?=91 MP1O+6,M02TCI@CL.
M/4*&&+Z4##F^Q.Z KH(\N.QECV1@JL*8 (06S"Z'-43:ID92\V=LD@0DSTJ*
MZ6VLS4BUF7Q[Y*1%_'IJ9L3""6S+I1T9HO4NH3&IA^4 5>_C&EHK'_JH*.*W
M5D$%%I.,,C[P)QX,-7BF4XM]N'!0E/9A&T8)8CQ?1\DWEGI9FF%*,_'_.'Z2
MVUT%I0/(W%4PHF7J$6U9^9;%^LY""G$Y'FSZNW%3B*T14XDO9H$*F(JHDMV-
M7]K9\&C8_6F2UV-24>4B(9BI(X-F0W,GJW?9T+:(9P?P3I4-S;XS8C9TJ=D^
M!]\YUAJ]_BB(J075%KP5U:%G=.RC(2IR2T\1!Y&^!7'XKR)S)8G"%46_C2%%
M+.-6G\6:>92#J-!OA'0Q*T]3<2XD-O$*DIW"+7]R<LOJJ?,D:K*#YCP5$R'<
M$:<"["DF4^K1U8RZ$6P><$Q UXT>WI,8]3_N9*P9&6R$ ]YWYM'8DRZUA=*X
M2U+.0-NV\3"KF*IGPM!'15'40LQHCS'BLQ6\[!9L/63((YEW)$RY&FPPDF7*
M%O_%+!LE,2/EM0FA/OA^6/9_U8JA3FS$$5^F^,(*WMY2>+60*Y8YF^YLU(2O
MC@U.9^[*&C."T3:%D92XQ UQ@L=19AFE#@6PP0#R6X96/:MJL\^-\!P?G*RH
M0A%W9\DMOL7W9OR#8]3/'F-M!<G:@Q,CB=Y[E)>IFC;,IUA;!%M@DHYA(^T_
M=;9EP058292=S?,\#5]W.7&UY@EH7*YJL GH)F5POTW'M A@(F8P./4TVZ5:
MY3]FND\2O_T "4.S80L%DHB6JA'M^GN.XA5:?0V@%EZ^API6/8-;Z@9$Q#XQ
MV[!OD$)@P\91V2>2.RRJUL$9'WK&QQZT!MA M.G,O_+5\[:>%"^V2D,QYA]!
M&($,N4E24@?83OTH5C(\X*.+-</?X#-380\7YOWKFI7,94$T\PISOXS!5?QL
M2W> ZY6LL1Y$(MMND!43@SCD;(V&U[;MDE(^:V'0684:&'8TZX,0"%8%D9S'
M*S8[P8Y M ?[(5^,"RP1(1,PV+BGZ&Z\'-,Q.2)1W>KXHH09G$-BC0J7JAP)
M-K_8DY3+/OD69!R\UVNIF\,F7Y1NLVO\LGG#[[0O:?(-OQFQG WB7IY>YCGC
MX\[HP#,V\I$0%+FDI7(?O[;?QZ_U^[A2Y!+@2K!0@;J4SPG\2 @D_1N"$E2X
MS0=^WKZA1P36=G!ZLU?]+H@@8[]7P5[^C1^P9D.^,DOY9T@U'O8= FTP^UT8
MS_8H2+-__S3[H-5&"1@*(P#>K!\CP <>+^?MZ4[UJJ\$2$Q8!_CQ)S$J^=.,
M$S5C5,T*LF8"700$8M"WS%?\4?R^@'B^I]T6\OB)A[C4+SC>ZQ7Z0%%"8':>
M4/H1+M&!"0&UQZHP@4\S-@7F&Q:4G )U5IC&C,]CV)?L^!QB&],"9\8!<1F?
M0Z+0%+Y.N,,Y5?"@&\L,.#5/EQ7>!.F23Q[_M67^K,5_8'F^1-O\![K8K#O8
MB<>OZ5P3L.2I!U:,(FFPV J)AY,C>^<_'"^5!$172)YD7GL")"WCI7EOI\32
M&@,(2P$LO=^P7D]B@*'^Q0K"B&\@9EHDSZ2]%ZO'WDL<!/\"Q6@=YORQ+ELQ
M?0\OB+J$)J!)D#T49O@!]HP_./\>2O>@IKE3<L0DHV628M%.9DCBPTCQE70/
M]4I%D@R[>+%*#RE+_R%O66IZHVG9LD52M_:"&)88\O2.4"T/12KUE*V](*:X
M8+ZB ((/X:X"7_%+G+QF6%D H\-MO,5*/91ECL%:3TB ?V(Q@#5Y?/6%69'9
MI+Q)!_F0%RQLIIK5;&0R=K1V\H(T.6H^JY=;P5,05**LP#;: $& Q2#M4BSE
M9T-M88A/>\'FYY2<B3V1=T6)<ZH*@D+$\XIE?#+MZUZGXMH$,VCS@B9,FQ#+
MN;/@@X:6U7D$+U878->A9II*)Q%_[\6$Z=M%M@KR%IYH3FP;/"*"TTC0T_)=
M)E>9Y&W=GQ&)U(/K\"V&@CP\[R3@=8ZRXKS'HOL%_PZ_.5>,1MJRK%T+QZ8H
M)$Q^USAG3F;AQ=8OLD$+&:,Y!<K&7I!RL.F"&2C4MNGK[_BU&V;H(0V7Z#&)
MHG620D>K!I2#9^$%\P%^*LR)2L(V.M%"($1;DG<D?ZEV&<&]Y,)O&H3_7!;)
M36#["O,="9V.$;6 -B2-42]O5I0!BK&HEEW^GJ0@$57+IVCN!3F8X6&.[L(/
ML$%6BN=E6'?&=R)-9V.2[>\H2&^272JC]+"1W&]8T63'(IC_F@!L#KP+M :^
M1FNWQ*0YU ]:[9;Y(F7V_;JJJ6KC7'.[8FZR&RS2@HC:PF_PSQIJF[*A%Z>)
M/$/*^%U!"VK*/=,^7A#6DDF@TXX,NSK?@O1!\/2.HHB%<<B?#&(+]]*+[)XO
MNW %QD5J'+W8Y?=)_G>4,YQHDA.VI_^5JAJ]!O)B>X*#!;0C_ <\23^"B.A+
M^660IGNL+RFMD48=O2"QIO56(VL%[9C!O)6Z(4DCTQU0.R-[P20.46RH6VN:
MNS_9-A_?Q@:S04T QK/P8B\U-'>UHTK1U LR"FB)9Y4+HMK"CTGWM!:0N(G,
M3<3'85/P@NV,C.PY8>>8GWZ$R4DRN=6ZI8][02J ?U_MP(%(EX2>U$>$KZ\0
M0A>IXP16$$)R<+.&+#QT("_6MH1,Y&GK6EEP5TEN=SUY"40[VVU(XW%OZ^1^
M:W)=:\XL>HTM5V_@R2OI)HSPO8VWREN2*IY)E2;N.<V4%@+YCW]ZC[Y=8,4/
MP)H7:XY)RUZJ"A-EYQ&\.#FB%A93T?2>1"N49M1W)SLX;7V\(.P*O>9E6*56
MJ"F:>D$&S7]MA*.IS47:#EZ0U%=S8@X=4$9UKIXAE#;#3WO!9J)P[)8YT40@
MP@.?5?PSE'XH(PQ:NKB7TL)#"C3CKT'Z&\J)?ES:W1N"V:23%RLF44A$=\)?
M$UIV*D=8G2R?TH:JC<%(7C#A.0U6",)<-";Q>ALO)J[Q;Q793**CBSX.I#%M
M!P[E_GP6^RY>W0,^ P"7<##L3'H'=^CFQ2ISDZ#.7.C%1'DP/I%[]/I2'RAE
M8^<>RR?T!I?P%Y2\I<'V/5P&4?-%IVWH_E0\H^5[G$3)6[A\2J(=W=714O&.
MT+9V3TQEJSSLTN4[UI4@-'&QQF^<PNC1(,NPGQ=G9[Y:A;24U$,08A%\&6S#
M/(@$14)VB-I[N5\];7&3FR3%2FU,[>W+_>UF*PNN[3Z$%VOZA*=%L+BQ1M\
MV-1Z@<QZ^D'DH>\;R*S.%NNY]? \<6 O6*36K5XRM-Y%=^%:GI=BT,_];0EK
M\(BV7+RF<!EN9%$^ZI9>K))=[XK2.3' 9[Q@GP*15NGBT[7W@B I_&'IEM=&
M7YMU]8+,$B2H7BH0DMJ6^'W$@BRJR$G2K7W84%ZP03ICZ;M%UM +$FCD A8J
M*7K'<@5?&R4Z:TU)$G#K\:J0?]&JC//5/[!^!3+G'N6+]7/P7;F_K7_)"R9:
M3 J@CK(A[H#&1[Q@'3?N5:K4B^7K\4++N&'2SPL"\1651!]@IZ[@CZIM'-H.
M7I#4K&/0XGWS"6"A%"'9<\)3LU$%E?HYZ5C%3_[*MO\=+QA8A/I4(KQ)#OQJ
M$5>SVQO)\-5<>*UB,,1W_& @(K;CC&1S?Z TAQ=:%2-"M[$Z='=OQ^$@ &6B
M9#U/4B)!NO7T]#&KL/YJVCHE9$D15GY]^;LXY?*G7IP<0:9BC?$>?1/L7"F^
M^W=X!)IAJ' <=QK "Y(KKF[BYBY@I7A,U4-"/:?9=11N(+89JW_DG<]<J:T>
M],.&]8(]S: >G>A4M_8D'NUI$T01]S+*X]$J3;Q8@T>48^F%5OR1B\_4;K,C
M^^D*K<-EJ-B!;;W<WUY/6""L\G?\4SQ#A1M,TL:+5>G[7,3R<8U"HFEPN^$0
MKU+)9[Q@'[X.E@BM,@B1A%!IDDT&49-!]+![C<(E=P?*F&+<V0M2+06;E0M(
M2B#A!SJF, N7@V4FF'S7#P8'%!_D^CM,]SGXSB"Q-(_GEBY>D%7:IN$I4JZ@
MB'S96$"]"[/GD%ZP9=&GB*_606!C8/>7:B>(X<9UVQV@V/5^T,8AR-99V\&Y
MHCK';%X1Y((HJ%Q^C5\Z?Y@SA @2_,_VA?Q5KFSHQ09J2V/0R0S3OLZW%7W<
MS%<K+,@R_/3$-_E_AULU1JRLI1>K=8]R0ZNN;+W,>WMA+?KON<Q:]-]S+U:"
M15H6F'AXBVS@^@AS,+XS4_)_)M^ Q5<H6Z8AT2NEZMAA0WG!!B&N3Y.-4V_D
M7D]@N UK86HLQV.%'XW\637?X?L1'XWE/(YWH/U3^-GK> 5IR<W7NH5!O5C5
MUL=3UB>ONW^"DKW/^W4UL3_NPAA]UMY,8D,O=DP!)2R8O$/\2MA&J/S1$T0(
MX%7*7K90K_)V@X\!7J$@NEZOD5S%L#'ND4L;:MLI,USLBIWZZ.Z9!9L:$T/B
M$VI'E\=E/,JDKV$_]P1JGV LZ+"$CQ&\2@V2#Q[)"YE1^. O]L5?_S/$"Y8N
MW_=W\.Q6>=K,>GI!9#TX3PL4K6CK!2%00RDBMV\0\5(MM_$Z23?T=M9YQLRZ
M>D$FJ-PE?JS^^2MOZ@49LD(:JM.D:NM>4HKIN@]/+V*4(5']%O%SD+[A6<.1
MAVJK[R'^VT86\7'X4%ZL9_%&OX-+^Q%NM\4:/PA)K(K4GJOKX 5)-D'3*KCI
M)!98NM$'_:+SIP1'?84:3?77@_@[]^<:(K+!BW8'^9WJ)%!Y,R\V+XVS? Z^
MHPSR')5QQ/567DR>I.A0"Y-LUL*OO9@N..:*;!S=A2QMZ/Q8LAH:!(@&/[M6
MZ/M_(04<5*V1^X-J#$:I.,$=^WNQW2K1:^PAK7&F:YI[00XHW#7DWA*%CR'[
M5G\@M*0V@7KYK>OORVBW(J4\EL0^ ^]JC0UGU!EXP?2GW6N&_KG#!%Q_L%M7
M#<&G;.P%*7,LF5:0)!=^H">(BR?GE2X 6E' \LUVQZ,#&F]84EM,1K:5@;U@
MD?B 8L$D9:R)-NK"K*<71 K6Q8<@7:0D^F/%$:24%=<,NGE!WM<D1GN*BG6S
MBU<FL.@M7;P@"X0)?LT"-+T6^T;6S@L"=(F=/$WS ?RF23S/\17RB@4&I/(F
M>+<I;NR>0WK!%HZR=*>#=&PT\F+JH-UN*)8(L/C++@!O'9(@BIKU<*\E7V>X
MW;?+* @W94)10Q>6MO)B1;20S0(:5A$4*P_6[CR*%\03:?"0HBU^H+-WBD;;
M5[?V@A@ <34#A)"W](((^HPG0<JZF)):(R^F7N![T4 _12!#%#$K.Q@KN/V1
MGA82A*P5ZI8_X=P\PHX/+54%!<\DT36Z=EZL>Q4\68TPTVSFQ?35U;7:(59,
M^SK?:-P$_G^P^I"C--K3@#N5I;S6S+V6\1)_H(SF21+7*;P;X59]B<-<97\S
MZ./%!N3!"^0-##K">[C5"7]U<^?;K!*G15Z[BY1$W,9+?;1QK:T7ZW)P%A4-
M "]E'761/;\',5,"[Q.V-0? I.GZ<?=GFP5MU3+W54FAFL9>[)HJ7D2C1)IL
MK5NZ>$&6Q&2@@Z32-'>_X6RZPJNA!F/525-^U7EF4)$7)\(P2^$G50V]V.YW
M0CPEQXFZ0_$*I6I71EL?+PCK%C4I/]I=1O""Z(MF,03ZA.:'C.HB C@>>2?J
MPF@Z#N4%&YK /VHM4]76"T($9$LK!@%3&$V['_.#E7+#)7'B]+5^J@=QKP/4
M:G5=H+<P!A=KK4X7\U&:%?PR&L2/5:]ZW=5B0-K0"Q*DH+Y*&TV]H1<D] P"
MN-C+!U!"= WW.2_8J55,+BD$$I[Y99 OWU^V94((@$B2<\KSK5C6Z6)-7I=(
M#AP^W->\8"99\M=V^\-KW?X@EC4ED=>9O##7H!_RAX6#F'#^2NPW%7">82H5
M]YK)<2]"A4""%[1%$*+WG,"/!//,G,'FH^%QF0Z>C!=+P6*\'H*T\CY2ER)4
M-G>O/AYHS!'"(*1VG5HH_<"?\F)7".B$JM@D[2O5K+-SNQC4*ERLOP;_2%*N
M+<@1<Y0-O5@M35U".N4HR#(@06TFZSB$%V1+SB#@A(4K5J*0R"?ZYI.6<^S2
MWQ_A)BW&V/#O&W;Q8AVKGA;E/2UIYL7T;;H0RK.GM7-:_I1S.?P52Y_-3N9=
MK/_2BQ4?3G/7PL207T* D:-G1<?)>;%4]"#PU%A=_0I90_=2OYYF5.#.: H%
M-.Z!0P9Q3WIIXF^?;1'8]5IW&/0<RH]-+-247JSK^IET-VM[>$%4(2=( 9.,
MH!S\K'Y4:)I[08YPP193-8M[-NOI!9%U7$ MQ(JBK1>$-(LU&:Z03Q>$--^W
M+&Y18F>6NTGK4SUD'$\8(#5*:?,<V_IX09A1H)J?H6G-B_9>6OS(I+T7!$':
M:$BQRIC*0%&6%,BVFN9>D#-"**MGSQ?S>7FQ0%]0C*<7X<TS7VWP$QC$$O@N
M68Z76E,RZN@%B:5:SO-"#6-^&LV](.<2FL0YM:\]AMEO%_L+?.+?-T'ZF\J?
MTM;'_3/,ILVI E%52OJL_@;+++I<>D_$B[U%D406:Q%=9!'WPC&YC1EB"5;K
MMDD61%_29+<E!:BS);FO=D5,,Q:?LMWK?E9>+$X)C2ZW6_/?>C%9J\>(+J:P
M?$-;K9M?](*I#%5*0%?3J[KRQEZ0TA9 "R(2G($%^,%MW+&PC]TON+\A>05)
M",L,5V&0[AMW5[.)%VM=TX2+6=9?E%!T>"E;RDX#>$$R5QVYE!%#HZ7:M*:]
M%P0=_&!ZB(+X:[(23MDRY9#(PD@0'F_UH=;ANWXPN'AV'%X%0IE_;VUP+UA%
M+O!*$HX\G**6B*/TQW4?R@LVJ&R+QG98X^Y>D"N@^#\G\]6*K%<0 ;[L+7X,
M;$-\LN4!Q8^(KB]/WJ%B54C@4)J)AOZF%XR5!RA10V)>.1!"C+M2[3Q\-/<J
M%E.9J^7=B('/&/'5I*\7J]ZL6B>].!JMO)A\-4BK"RRC64\OB 1M-BMB"4 =
M3*)PN:?_U8IVLYY>G#=Q@OB W,D0H-K:^DB(/%12T<Z+[5:\>;&2V*D:IE%'
M+T@L7"\5D4Q2L%8+L!;ABX@]([.7.'D%3&M8'Q(, G=W#)G][/+20)4-\1TO
M&$C14BL>?'6PM[*Q%Z1H0M'%L";FSGI$,/$56!U*(#;ITO<?U@OVO&20](YE
M%I24DV[R:@LO)FW3!/R0)EN$GT9@1\B9+7A;K[ SZH?=7W,/>*5II $4EHLB
MA(\U?@VQ":MJBQMT\F+W/.')T9 DBFU-4/9;O.!M??Q"91.J9_XD4J-MZ,7:
M2$(6]<@=V@Y>5'E^>1+G7?[4"W[WS585C/*/213=)"G\TJJ!5_LE+Y@HH$^T
M(2M76GDQ>2-[AL;OJ._H!8FR^N.W>"=]A"M\0SV'.0G;?TBH:7B1DAB!14IC
M[G*$(%'Q^GL.&:?X:K^.\>U-+5ORFV*@CWG!2HYZH\3.JC3P8LJ@7^FS5:LM
MO)CTX8@9RR6*8,<@CIO1@C]J\R->L*[0"-A+'&8- "Z-!WA6?8%7G^N%T?H)
MY3FM[:HW 5C_FA?,Y(6EF;(KXT"MB1?35G@B>!P(?I$QLY5$?53$51X\GA<,
M*3 ;0<+1B ..E[UXC<*WPEA!$$?"#6X"Q0?R,%M3=^%3'J0DK%D-Y6'S"UXP
MK0KSJ8RY;;1R_X OMF'IV%RL%9NX\9#OTMF/=2+@G!!: RHH<\1F3TFDP#95
MM7:_;CSBZ9(HS[?QW][#Y3M]L=,@50GFL$$?]X1Q,Y!HYWI@^-[,9,3A VC(
M+IA5>1(/5CVD7A8;@[IG31MN" U"^*\P7C488-[5+_O4)>S-]#GY5A$^FF9>
MB)D#(AXL!4YX03[$2M]<W5[>QL2_I:Y[*6WH!0FUP@*2,E[*V AM+^>GBR%U
M[GGF!+QFZT=+UL:+5:DJ4.IGNJR=%P1 U:-:Z#)_%#W6"CT9=O&"K+I?TS#>
MT*";<X2@2Q!)*-U"3"2< UGQ ED;3]:%%_.D>+XDBPF>4T4:TP7"3R\D9(1<
M?\_3($E7^+Y)]R3, &"2(34M(7XMOO?DZSG8Y[Q@Y_" G0-4 .KX;2\8W4A.
MA< 1C;A7-_>"G&>T?(^3*'G;D]5IX!RJ2Q&;=/2"Q$L)_C76?LB*:!>NI9<7
MQ,F1SO6>@K8^[E^3D!*V3$-:Y1K/*$>0Z@8NIZ?=%EQ2W."AJKW5K;\7*]DK
M0UCU@CEX0"]8PF]8L #4LM\53;R8MO4Z+.V)4A8_Y%RM?02U00Y[*?S*BY6V
M[#?C*5QUJ(<1/N<%.UNC3SP,/*%G"JWD1T[C<33KZ061O;UB[?6)+7_"N2V+
MUR>FTE51+%O:R(L5ETF:$HGQ/T/\:$Z7[QHS5Z<!O""Y[RN6E0PC*&V#/94;
M'W&OJP-2$)YDF2N4)C'^ZY(N^7V2_QWE%!,'/S=:D\(L#>G%CA)B);^&V1)%
M41"C9&=>!4S1RPOBON!S"^:T1?P41+0F5)D(H$T_,.OI!9$\]4&3)U.S?[]D
M:+V+[L*U_,[O,9X7#!&RYPKX&1X%:IAUI^SG!8'E@Y@XS%[P.F6/3R]J.YBV
M@R<D]52M[G39@_9&]X)9()@N16#2BSTO$U+^6!E%9=[;0V+95#5EH]7-O2!'
M0+3O5T#2P.!BXPM>,$U5C0H6^QYA>?T<?'^ )  LJ',LZ5XQ3?#22AZ"-HAP
M2T.[5W%IA;(KM(4;ZRK,7G=I1G51!DOSG BH/ UUMEMW+W9%2]:,+[DQ8!-\
M2G;Y^WR#G]#+0&XU;+9POZ6>OR7/[UBK#R!X$PH6(Q1SM&9X_,##!C#!Y/Z-
M3KW=$ZM6=[EB(&:;S]<Y2B&U_";9-4GO,99[1KQLMO_<!30$:/Z6(B(%%&NL
M:>N%B'A(T38(5\Q.R;/FC&L+=>CN!;F:)]N75(%RV];'"\(4<)57H-PPXW1;
MM86.0S@WSM+XW)M09JF3_=Z]X.#5JFYC2+&$-!/\UA0AW<"UBU*\T6Z2]&8'
MBOEMENW@%=80+#W&<L\(9CV(WX1B55&4?(/9X>E2<0D*)LK*Q _9)=)]%.?;
M]C+!YTLF4QN_]$*P&$CX R\&+\@;KB@'WH%K% K5RJUZ$KI__KC9C6D E1C?
M2XNU< D1J?<U^ YE-*WRU^![?C!TM]U&#&/X(HA ]#V](Y2;8I9TZ>_^WKA*
M-I#CO2RLSW  PGQ'7,?O6+M6:.&&_?Q8T2""NYO88^^1Y%VA;>@%"5QU9&'9
M^-A0( JI>JUL[ 4I=0@-P\0#@VY>D-=244GJ^--W\8(L7=BOIEZ1MH\7 $X7
M4@"G"T\ G.!RA$>&+"]-L(VJ,]M,.KN_A9AN^Y2L<ZPJ((*HMX2]+U.(S7IX
ML7X\&U3D]D.:W( C$%\PI=E?MG[&G;T@56/3445M:GMX0=3P&3PU$Q&+8T(/
M:;BT6_+0RHR\6)0*%NTE)O9-[HR1M?."@+YK6)8P$-X4!Q11LO-!+UAZC[ZI
MPN*,\=:[CN$%X3W][7>Z$!9;8WO!*)DR:E()PZ2?>P7J$63V#XOU#R\9NT(7
MKWF %P!?K1P2 "L.=V#?5OBP^XSCQ0J7N3YP<^'FZH>^HJG[=>2!D%RO+;-)
ME05+]!V\6)DKM$W1,E2B:HJ_]V+"@@/(R-&G:^\%084IJ')R=7)/W\,+HHQ"
M+.6:H4%'YVXMG@5#TM%"FJ\&QJ^ZATO5SHLU*K81,V9)%8U&(R^F#MY>W!S2
M@:_PAHD2$G^OL>-I.WA!$D7'8]M?+LB$!EY,F3U'P/M6HC1!V' A<:7.TM9>
M7A GA/\37*TH^:9_R&G:^T%02XE*PGK^JH0T)4BW;4V"[#^J'\QIU%6Z3W)D
MZO\P[>Q>B16N4[)4DE00:>I(Y\Y>K*K&C*E]79OT\X+ 1HR^;ILJ&WM!2JO-
MW1^[.L5K"=98E0.<EKN[2Q6F2[.-%[QF19(TMUFUA1>3YC& 5XC' C)'$Z]\
M( V_DA%WV$A>,*%B."=@."0;@]VLH=[6;-S9F_=56;/M!O^DLIB:9NZ% [=&
M/G]+%**AT<*+[=6 ?KM \?)]$Z2_=8"+J_7Q@C#+,#3475^7(U)58HP/>\'B
MWEFUE+;/!UN%#,;V@E%8D8$7XD.:?(0KM+K8OQ PPMOX@Y9T,1/FW4?Q@O@:
M"KP..$G:T@LBM-8D;=Y]6S<OR+,MLWAE@#'D(_^6%XR4.2B),BG4)36PL1PP
MC!?D5TJ2L6P= M]'M>VJ>FUH:^D[IA>,J8:_8$HHK"4D,&GM$B;]O""P6Y'F
M>[PXS]]0](&^XIW^WM4D8S"B%TS!5_42H15!\Q;-HCR,2YHST]K)"])DQ6!U
MRHNNO1<$T:J0Q$^!SU@%'Z6<LH["3@-X0;(B)ID6I#HLGKG1UPM"+RS6$F=:
MJ? +?D%I/'FC3N#D6*X(6;;\"7]L2(M8E>C5:.'%6H,FLEC3?&390HF_]V+"
M2O4:GMC=H@]KW;P@C_G;(4>\I=I5D6)>V@XT#OS#!O2")?3Q5-Y+E=ESB&GP
M ["\8XK73N\W*&\'T (*N"U+0WO!IE)1(>$9A4^?^0W($ZQ1IUBK]_4;T0NF
MB HYQYA@P0_92XQ7NH S@M(-TI@(P#F2GRQ+8WO!J(9?H,PRE]IX=>W=W\9%
ML4\FZ37E0'D++U:AC,^Y3XAI6!JV<5# SP$#>L$2IACKH$']6#NX':((+?-=
M$''$8;5U6=W:"V+,_17]O!W.?=>\W./GGUZ?PSQ2EH/DO_=B=5K3T+*6/#2&
MP *&'([!8CU_TO(<CH/Q?3%Q@!LU+GS!@Y."[X49[J#E&&5F[F_^AZ>7'RB-
M0OAC$N\R#=BE01\O=M\#9G6L*YE7:>#%E)O!6T6* G,'Z1X@YKV](+9O=K##
M;/9C2%NO1F)I()4D;;S8'Q*CIZ$?U:RG%T26*>Y0,>\V9@=5+;2T';P@J2F&
MYLMEND,56S1S99?9?GJ Z[YCNC^)=RC/R0N:V(:?=J]K5G)<<2I;VKLG2,"\
MGHNPUSS%&5[+/&+%##J[PS!>;'19>,]-BOZY@VH,W4IQU;IY01Y-2"A2O^Y8
MK4H5ZI:FN1?D7!(0 2(X"JR-,%Z&VPB5/WJ"6QW?\]G+=H4)F:\2<N'7B\79
M&M/Y>_XY#0@8YG[SFD0BA8U?>K&&I7U.$S)C4"VDK;=GQ#(/PD.0LB*A-.XW
MN]A7?M-.=X>!_&#![C4C@C&_AGOA&7],)7X43?T@PWCC&5JGC8?Q@GR%?5/B
M0#T@)EPSBA?$2PMO%@&^:CW?I)_SZX,"\U]_+R$@F@#9NG9>K)#RIO[IQ\^_
M?/Y9\Q0SZ>@%B4\HBFA:W-<@_0T)D!=2.:-L[0<QAQIO&-IW\;3 -\8R#8DR
M]JA0\(;ZEOOGV]-[DN;/*-VP.EA-GV^CA?M)E]$YU#D&_P!'67$%*M-C#^CN
MQV;G[RGJ>(!=F,0D;D2E!^DZN%_!%XU;755XJ;6+%RMU!R9';J_1A-;)VGE!
MP'T2)]QT1A_SFCM"V=@+4FI[7VV+D3;T@H0O2;+Z%D: SEY7\<V"]#L-X 7)
MXCNU'MR,5@:AS5V>4%8^X07;+IIXW:K+0='4_;4@%FFAJU"\?S1EHXQZ>;%&
M+(/O-L:'KEX$3-7&BXEKP?R51OKN=0'40SDO:/HU^$>2%H&/]:,E;^'%VO4&
M%E!:%.V,[ F3A+13K,GL> *N@'E'%9R%K';R]?<<_HFIN8[Q_9!JL#_M?\<+
M!C;F3U("&P08P@N:#.&!1""/>WEUX\HOW=^LVH)92@0?HU[.U^$1K# R@5S\
MPH\3TC?VDP<5N8L^[30#+YBNQ<_'K]?E@=#[95<OR-1!!RR7N\V.HJ )* )2
M9T/G4;P@7H#554;ZUMNXE\@,J5T$!18*_/+4J/D.[SO,ZN4\CG<@?VG@$[XJ
MT[P>CF!Q6"_6]4[(HKUA84]8FPRIU@/3E"99&71SO_HV4[FO,_S-;Y=1$&X:
MVV&@[WBQ/Q1A#%@^ :;68BW\3*Z*&W?W@MR'-%GMED(JZ>UF&X0I33](-96H
MC#IZ02*WRR6ZT 9:^UR"B&-N][,QOA<,JT)%J74963OW0I#<53]4E,U2%^4
MM>L<I<^P1?/Y\CU$'TAJ SQ\*"_6\2%E"R04<<%W]'N2@IQ6F DU/;P@2G/&
M+O;46!8%F=*%V:&[^ZW,,Z-E+^5LGO_M/5R^0]P2=Z+/4_0U"&-:W*JQFWN-
MYL7:RY0PU4*KVGI!B$)+N--CV.G[>$(8,=[2.GK-EZ[V'C7MZP6AI;-/XO?"
MHD3XET'LK-D8GH3D/:(W4LX[SN^#32-+6];&BQ6[0J^Y,5:FM*D79/#CT$#]
M4,<2MG3Q@JS"N2J\$%ETZFI1 ZUM0-Q6$6Z5Y\WV-_Q@7"=\3X#Z?_Z6=+73
M*0?R@@4DKJY3A)&^AQ=$U7(.M.'KJK9>$'+ OH)D84M;%(;R@@UTAST'W]GL
M+E",UG*@/T53+\@H9"A^+4E2#)7/KO9N7I#'D=.>$V:TY&:N#Z0NB]/:R0O2
MF-6>%PYLXLTJXVITG?P@[=!(>NV#J_^HGBCLII5_S7IXL>(-598^].%O"J^K
MJKD7Y B.4**:2 )4H'C;/<H7:WPOR$CL.(079,L$)X%?@^ \P.B'$.IMW33;
MO;=[2QZ5F.&2^$19L=/RC#&<#7K4!,<J=1IP]VK#H&=C4"_VP7"(6007JP@L
ML2KE.W[;_1[D]M^7&$N$-..X)I=)NDVH9,23)59@>@E0K!.D!NSL.I 7>TVM
MQGFDJ]7P+EJ N61-O2!#S(B05E DGD,C;(&6[EZ0R_VA'9YZ+5V\(.M.XDFY
MQ0_QL'O$3*V;%^0-=P'\E:06NKE\JM_V@M&2J"&M54O7W@N"ZG6AK\)HE\L=
MZXJF[I4"FZ%<)3@:A/T]0A O5A(RVG70(#+MEYV_PB_!]9RBX#)9-=QEXN^\
MV-2295&58A#6@2>=&)[C#B-ZQ131/XM?FS>0EV10KTC3S0ORM$'I=7A$5KX$
MVO,S>1M+UEAAA['_(2]82*"#,CP;/.N[)(C!UH(RILVI"M1I>OA"5%%6XTZ$
M%E#0(V_L!2DR;91E4UTD:9I\HT#&^#?YWE2;5?7W@F")[-%:NW7MW2=C%1Z(
M^5N*B&9\"0'5*-U".!3$F#1Q&#IU=*^)<>NE:+@LJO)BV1CM5B  :]6=FT;!
M@X;Q8LOJBB$J<[B57JNN WG! G@&XH=!^I2L<_S.0S4WMR;&QZ2C%R0>6(A8
M6QVKWY!>L*6#EEPM@989E5>S.+P7[%+Z>A15+G7MO2!H40U% FU0&KG4;.;%
M]!\1C1/GA@ZUI)*W='__EOE+B[7L$FW<M&T=O%@7N871W!;I?EV(20>@ IG8
M4F+:RYIYL095ZY1AHGAK)R]((\DRBS51IK3/"VE#+T@PQ_Z5T67>VPMB#P:5
ME]LP>@SG!3L:[C?! *E0)%JZ>$&6,K)9BX'=ULD+TDJ?,,<@-' ?5YJZO]&*
M8-A*O [3L[.*6GZ3I!+#3./RZSVB>Z8(V5]BIEN#5$4[+S8G/D(O&LU7^+47
MTRT/R!P+ZA6X),,/Q,ILAF"+IM8BFI$']@6R@Q;KNC?3$!;3UE><._1H6!-Y
M(0<DS/LJR -)HGQ;6R]V0;/\E=9+HXA!ZC*$+V3+2@JIX7RU';P@2:&+%B^)
M7K4P-*-X0?PCVK)XX,7ZKLU7I6SL!2EW$E\3DQ@'^ZI4_3V1I5B/YB$?]%C1
M&%.Y,%4T]F+M%NE;$+,\--"[DBA<T:"N&,S1&4 *T^NM@&$H1$IFF)YL^QO.
M]P#(TNCA/8F1?-GKO_=BI15X#.H+1-O!"Y*(ET1XSVJP?Q1-O2!#L$;@H[%L
MN>_4K;T@!I_7X.TM16_L2+/WC];8UM;'"\):X#[HLP#T#0B+R0 =7YKW=, P
M7I"/U:S2A=.BCS4;>D%"^;(3W*NE@=KP5:COZ]XP4<=\S%&,U>*O 20CY'LI
M7&9[%S_6[]#H<YX Q #"/H(P LO:39*2G"=S[U+_;WG!2%8O&C^9UEC&D +:
M-TA[?>I[>$&48+>IQ@IA+;-9(+M+>93NXWG&$&)=O=@3GY:!^;G1W+G"3=]1
MU_A^?,-7XQ?\),0W)CZ705QY4+8T]6-50"Z\M@N65P7Z.$V4 ;\]+RF1P(^$
MA/<:''E1F(*K&[L@ K^S- G*G]FYOT@)F"""!REZVFVW29J3]VHI 7GLVA56
MZ:*$Q% \H?0C7")5^;;^0];9\O_]1\D5K"__)OR&_&(KO*_A]VQ&#19E6,*M
M\G?\.[P6O\?J&^;53W_\\9>??_R///B>Q,EF_Q^$:X_X/[]>)4N2QL7_A 5G
M=F-2^Z3B] ES^%9](O]664#$=(Y_DRQX4EWK" R92<';]Q2M*249)H6L=(:6
MOW]+/OX#BP-"!?SE!_C+[[]GJ_^'9+$D>/?5E5C"0Y;E4OF];!<.,"G.S&<\
MHF1.E5^/-*4Y_N"*(-]$P9MD3M7?C\PG&B1[':]$G5;"L&J[D2=Y$V;+( )H
MIQO\DTPSS7I+)Q.EO#*;JMAVI,D^IP'<(4_[S6L22298_?U(D]*A3 ISDS8;
M=8J7!%(FNL6"]OM_H;URCO5V(TV2/2;*<Z ^VLJFH_+S)HQ0>HD_^Y:D:FY6
M6XT^P:J%6CH[UF34J8&)J(#?(-9^DN>2[L6DT\9L];U&):#% ]28NJK]J).>
MKU8I!-+0/\"^^EDY85E;QY/]J<-D?W(R64B/7J3/R;>X;:I"2Q<3)8=GD1*O
MN8#5I)IMO;F+*3\D^ T9_7>XU8H(:>.Q;C!)XKQX:XF_'FE**E>E,*U&DW&5
M$GJ5/R)X#=/HVURJ?&J;CSKEITT013PH43G3:JM1)Z@UE#4F*F\]+D??412U
MS;/2:%Q^?B?^;Q)Y6@7':3*SV73<XV2 G=D\5+I.(ZN%NAA%B3XH;3[2E%E,
MZ/[S3Z_/8.223+/19.2I77]?DI0'Q9M4VFQDP\/_V04I7L5H3V6ZQNQ0;SFV
M7:XXV*TS;3253%4TB%JQ9V\#V/P_+-_#J)!/ JB/S.3)G295TV.2KE#ZO_[M
M#W_Y_8__-MMB&09;Y'_]&]:^=QF>2$),_4$$OV/))7>4!<HIDOGAI<L0:>D[
M.VIF3\://_XX57XH+*Z<+Y^GSI>&D9=SYJ<S9QI69<Z;GZ?*FYH1F_/C#U/E
MA]Q^SMGRQVFSI6&SYWSY9:I\4;L).&O^-%762-T2G"M_/G.%F\ X2R:KX!KY
M8!B7?IFLVMOBZ.'\F:SZJ_$I<=Y,5@'6N+ X;R:K "L]9IPS$U>%52XZSIZ)
MJ\1R=R!GSG3UXHKSD;-CLKIPT_')63)Q15CE<.7LF;A27'/N,J[\:>)*L,*C
MS+DS<16XZK[F3)FX[BMSFG/63%SUU3OI.9,FK@6K0@$X>R:K!3?##CA+)JO[
MRL,=.%LFJP,K0RPX9R:K"JMC.CAK1E&#6?9>/3=NG"2^ F/G,HE7I(A+"<Z#
M5A=!1-(4WQ'*LY<XV*U"$51U]*2^=9"]$IZR5%4:K(.B/.,_*:-V*G45WI,(
MKVA&4>(5.7\&':P$&QU"Q /?9V1RE<KGM=G+6CJ;MECT+%YU7@GC[CX0R'03
M<Y+J'9P107%,S.8O;^MLZ@#Z!U5\\1^P)3Z""$\KF^>709KNL?S3G12SONY6
MI0HX(8^";6GL;/+%M2+ N3TD]))M%;\&71V?%:-#XGZRPA-3>Q#JS1Q.6(/
MVBP]T*##K/>AY %ZPP]<F2+S)G@._.P]HB7"4H2"PQ1% &$KR,]NQ\XN!5$-
MYX;7)A)^I)9+!GT=JE7M!7D:^I6FB[LU6JU"^B9Y",+5;<SJ20DG6[5 [1V=
M$658Z*!&45LOESH\%/;B!0HJ];WTM[M)3X<JL !%K*=#VM39Q(TJ/]<HT/=Q
M1DJ]/!46N[O-CB"WXN,0+D,5/08=/5D?<S6@O9\?+RV3%Y:GJIB> J.NS@CC
M=544DR]^[5+?XF>0R'GP*:;H'8O^\ .5J*KX+ENL!7S9IN;5:10?3"CM-A,O
MIMEVR34:.ILT?D"'.1:!'Z .56JK:A2HEDX.;0IU^Y^Q =?M$SS,"8@]>]CA
MBPG%2_5NU_5P=Q?+\(Y5]Z^TK>,[5WO9>B%5I!;N PWCCCUOYJZ7:K5;B8^#
M>>).TT-YJ)ND6C=%[8&8!/.TWHM*W4<S7\$DF-;NMY)4FVBX(B;!JBZNC K3
M:IZ"23!+[AYILF6:HJJ;9&]Z;QB3/I\TD_I<AL;^HTEPLO5F[.J^F@37.E^-
M)LZQ27#NT)O2_,1/@HWM=ZC>;3D))G6[%TS<HXQM/YTTV_I<KJWNV$EPT/BY
M:>3NG03+NMVH=U)_\B08U2[Y6WS6D^!2-ZEEXAIG;/OYI-G61_0;N.*'X.$'
M2E\3O[AH+/[E@M[N%DNP#N,3<[H)>K,(@TF<S7;!7T8M#,&0R"->=-3LNP9+
M<%S;D]Y/EAQ* W'KN,66+!!D$FQJ%U)MX29#L,E#':';>9,Y_3DVX4GOIWZ&
M?DU8S2#<\TW$&[P5Y3$[D^!.G[UE8(#^Y:299^K$'8@=IR2GVN.[.-3 \"QT
MA3/0 6+@@2S&.\K#95 $:!\+S,")9KQ6P_+P"BU2,N$5"4IX0"E!+U*09MC9
M$^(H#M-\E[_C@_BO$NA"2U2CDU?$W&;9KA,AK(-71*C+5YGV\B$%N^/1,>GI
M UF&AT;7PQ\RM,=%U=J?Z;<?E*Y5WHXHC,3THII(J*$-)C;/]D2"2^PQCTN4
MB;AF[3%.!H=YVEZ@0[EGI&-,PN]A@8-*D6?58.:EU=H2[VH2[[1M9=:X)D7_
MG33X9/';;+%F 2CXMT>*0EE$T+!XP#8(,75[=_G7*,+#O<WCU=<@_0T)DU/9
MM=0='#Z9,GQ4']$'BG>H90WD;1U/'0)!B"T9I1_A$F5/2:1^KRH[."."AF04
M1[ME!52M'0+MD,UP@^\ 6?C2]?=EM ,1#@X2_+^5&I_CD)&<D7V/)3<72'1-
M>%BS?OW:^SG<B/A"1%E>F98X7S5 AE%7AULT0UA_@53G*[S'HH1DAN@EM;Z/
M9;S$V\TV"%.J,_%,%C&)I39'LSYND3&4^UQUN^L[N<-&0C&>4(0Y.U]MPIC4
MXH7:"WIJVGKY<=F;7/(..9\F689W]EH)U2:V\.\BZ'H!V!8J-U@\$(O'?/4/
M?(5225'$!<$#(PM7[ TA$S"=^KN'Q..O M/7@P=3+H-QVR8MM'2LI\(<N(86
MQCL\M_(A>H'628J*9#B477_'<@^_W,,X2/>W6&,E85>@VR7D'<35!JVN.\P7
M';,13Y9MQ M\5:A%G*JU.W&'\M9M6VWC;*H\OXE;?"^"+%PJIBQOZ\W4K\)H
MERN]L*K6SJ;_-P1I>&@U_\ ']8U5FERL&V8]W8IT&\,W4MD2F/J@NX[BAZ6W
MU8)7B2'5V,HFX7_6VMFJAG"U56L2G&JQB%5S60^P/DV"B<8&*I&=9B:@2?"O
MDW!KL3!-(D2D5;X9FKHFP:P.(D[!UTFPZ2 AUF9_G 3G.HFO5B/G)$*U.BIH
MA1%U$.;XEO+306!5#+>38,Y!8JI=0ITVTXPDU &6[(G KG0XD!I.3R**M--=
M*'$H3 ++X)#])%J"STPR%.^-PW?:>><=6#:HAVD2B=F=F2WQ0PT1:7O<]V?-
MY\48].?S3M+ZV1B;_G*6;BT^/6Z/.&U[:@=.=70?<OZ=MD&G/__4/DG.P1'L
M.WY";HB)%16\/)#XQYI?80#^]Y"D9 OG>1J^[G(H=?"<4,B1MFP,2Z.[C5)5
M$'"#E<SP+:9@=LO]<QK$&9XLT!*OR+\B>O0+>T1+Z<F!/N:P\&"1XT4)(9!C
M#?+,45Z,1CD'/1D!(-3YU[(W=3W\N/HL2[*&KV@ *3 )%_F!4J#]:665;1Z^
M/2TPSMJ9F(0WU +#M8)U/(?-D60G-W']CE2++HAZAN/3ILC01N[5,LIRV+))
M# LR_QZJ]!9]'_>DX#V!B&&W;?YEPW,][@-U^78D3[4&K^GK+HR^NJ6ODDT0
MUG.=]&U] #+[BL!^H];>:^W<;23#8'>/L @55="T'-?W<2M[*-#,U2[%7'U
M6!6AF$?D=PNBAV37WU&Z##-E,DGW<1SF=5<+&6F73='8M_6BA\/"@ND&<G?>
MVFN3Z,^><7^WZ_J(MKMT^1YDDD.D6T9M/R])HMOL )I81]_.'V'U]68;)7M$
MY=T#FSV4%CU 9JK'\HUTNB+*^6H7^8#1+*>[:Z?QB+ J&BYS!J<X_Q:DJ[_B
MGS65E'YC^;:D-&IRB55;BK_6<0V;W7TCD&$3'DRAI+]#993;D;/G1*%EDOF^
M!L3RLH&X'6(W>41T_H@E"U+:'M$R>8O)*+J+9_#/GEU\Q^CBZVE@'L9M?'8!
M#FN%^O7S'X_0?O#KYU]\\S-4K,754DI:$^VT_(8-VZYA%3BK[-E212 /TMQ+
M)IF89:4[C.W!:6TIG>>C$HTI-PU/@EE:L[@"DIF;92;!H YB7!!AT_*DZV6W
M.L9T J+;^'RUN!_.&ZJ'5V(:.>O&6TWE*YD$EWKM,:U'9A+YL^;RS-R],PG&
M==AW>H^1U>3:OU!NQ>@-%NJT^,7=4593:T^"8=U=7=.J5G/XU:#SF(U7ML9;
M'O;TS@V2;7M<'.SNY)M$[JV%HROEVHDGXIJQ;7AGY#32=LVX/7 :DMW$7I\3
M:@[FLI%+D[/S_&I196Y]MHK_<[0[3>Y9+9AD%?&'&D&OXV-\F,@\N067K#X\
MU%PZDHRJRR![OXF2;\<*1U!1*$ ;B)=AA"I2Y#D!(A_2Y"/$,[W8OV!VW,8%
MVM@<7WH?6(-HK10YR*><A45<(;RRRU!6IT?:Q%W\QFZ[C<AV#2*^6V_C=9)N
MJ.1I224R[.V\/!ZHP.V5\'@K']*Z"M%AGLW5[.(R\LJ.6#A@(-^(OHT_J%VD
M+]&Z@9P1_1#L^8,3WN4IX@#Q8$S+-041#QC 9?VG%.$W\Q6B?PH;D#VKVRO
MF@Y@NTQEX\OSY1*K.WF&+UD4?L!CB236TT(<4'-#7KKRD'%\.XJLMGG_HZ@;
MR-U13),E0BL"Q G&,SQ#O$QX<D'TL'N-PN5BC95O=8RF>7^7)*[#7!/.*S1P
MEQ.P 7O$OX@*!-@5^)WT%L+Q@#.AFGA+)_>E[U#6ID0U&EH69>RFN$E2>A/"
M/^!6+%@54P^VE,^'C.#1??.0HBWFZA5[/G-88AW%/0=SK5'@15+ Q=^%P6L8
MA?E>(H7U2L:!8[H4=ZO=DAKH281&68DG6Z27[T'ZIB;9J*_M(RJI#L2]JQG>
MB-%N!=<G5QWPLD@06OJ,Y)O&(='9>RO]/LDE_4J:]_-":0*[)UCML$Q4%G=5
MM_=MZTG>R+T?V8X3C2[J?DM=ME&SL65A]PB(O3\LUC]@=M%+<_%* S9OX^OO
M6%+A:P;?.'>PX_G]TER$7D.Y@[K!^P7^#[+Y(X@0>0?RB!#X!9;;U1\(+:EW
MN2X4BKJ/G.!'?&M=XR>'\G$V\B3\$KOI#JV$K<"UM^+0JG><M6&]$-I=8%?:
M^SGT&%!EO%NI\;9>8ZIW^(?E2\JBLF<ZKCO$,B(>%FM19"SB7L*)4HF/VU68
M;9,LB+ZDR6X+E4K#;$EKK*!566)%L3L\F)A',E-6:[AX]AF+2/THKA_-$'A4
M1ED37'R>#-AB?M=T=$;4%ZP!@2EO$3_AW5?6GB6>@3:_@F'GX]2@AE"(_+C.
MN>&9EPYYB5<HQ<<0SS#\ !N57+?7@1U9&]XE@S["#,\#W@!)0/8UU-$B=[U&
MV=%U.F]\WO)7*1+%6'"(6R: %VL3\X.ZO3,2+G893"3#Y^4UC,EQ41A9YVD*
M:@B9_B712+ 6MP$E3ED:M+A:/RL8,M;7?;/NF-N^.PS@1QSBD%%G8B1C-4AK
M&B )W<*]JK4':Z%4TV"80416+<*Z\\Z<!",/#XX2V=LEVL@J6_U-)^T>FU0D
M^!T6&S01OAX>0E39L.8Q.5,6 QUO;C$,:"+EA\92BMJ"EZ:!;]-'36K&2TV#
M9W8T):U", E&]M.4#HJ4L\I7?Z_TPU2EOD%Y$V&N)7VI7_#?M'G=]:H?1*68
MA(P>2QLS# "=!B!<=Z6L5TSJ-)AJ1VO32OE),-*.?:M+%/%X]4M/2&6;YBFW
M;\NJ^2JGS,6.5WJ7:.U)'/&Q="E5!/DT4$T/5)X.CG&?!E<[:D]C1\T/L@B^
MR8\!5(1.L?63V.GV-8@I@W./%^'2DE1@%:/:5VX/8C@PSG:8!HL[7H0>9"9,
M8V%L7XXM2123X*E53X<V8V,B)03&N@Y-\TFF5HA@C->+9:[Z74QJN-BQP])B
MAF"]=V)Y1)^<-AEG6B4XQI =O_XR#%>]1&&V(SLT>456.>GO[3:6.!@M_6F(
MLC0>!KIVE2S&K_M)E/6Q(SVZY)P-PE;?;,QC"9,NS_7QBBPY1=L'\TV49+L4
M+=*W(&:AZ6#70=DR#;<T4)U+X8*I1X&O+U)4UA"@Y#T(4U^LV=$+HK*\0 MR
MK9VQG:6]]II^N6>>\1I?1&KX"^N?\4->6=U8E7(\UI=EO+0G3\38TVZS"=(]
M?LF';W&X#I>0N4B]!E#I#'-T*21S'X<@:\Z_K=R'NH,[B$'=>K0)$L/.?HB'
M]N6J:-B&?)G<27Y$'RC>(1::7?[\R XO(P/,C#+W3LM)-NWM$&)%.\&V@VW<
MW8^CW7$QJS8C4T:=_DDO#[-8;O3S<1ULB6FJ[5[6=O$)8LA<Q3?L[,?Q-5FR
M%NOC6<L&VF^","5%:[^B /Z]00)ZV'$<WX($0;-H.;[:+LZ.KVQ6;:=6W\>/
MPVJR0.)A;>'#Z9_1DNXO2;+Z%D;1<9U(/NM*\!\-BQ<4!OT1[3:&.^Q5-DWS
M>U;7PX_S>M#R50*(=$R9TO&ML^\>Y4>F&T_H**OGUG:D37J>R-$V8M+I'_&:
M%GV%\B",('@$I9#V):UX?1%$$)KV](X0-Q >F:8M4M"TYK4]F<TZ>U'B69QK
M!V6\TQ!^"(1N2ZH**&GGU^1$ F/F0Y#F^^<TB+-@R1(JCNG$JZAH-7:W='-H
MY9;/S/RR[S*"'V?<=!&K1NX.?#K]PRV>:\RTW3+?B16"C^4P"U,G@<1DC=4A
M5XV=;]K?X?%NF6*7<W[ 4+X<^(X+73WYA[!P2B* 9)V5R6@/:?*6!IOCD@60
M-I#O6PY\K9$[U1P8_IY$>(ME=$[W28[,C[)Y?S_.KWQQ*LJW.4?&!'YV?S8K
ML<8/*"7Y7D=V-(,TQO06LV\[I*KF[@K]U6;4=CS5[3TYCBT+4LG85]-^^E=D
M[0E,!5.1?5FI/78<1U$(JE^+^:),)[I,LCPCR_P*&:4\5;WEP/8<U%WI5=-Y
M7XCS;CO\?4?U0T38V2@53)J^W#Y]<2-$L1095T+NX)%YVJ[0:Z[VP=1/C;RQ
MP[+,XGQ:S[RBM2=G6;L05=PH!=6G?_9J5SW L80T\8]50B)9NL>7H:$AQ/AP
M=AO#78%1DVFV'>6.@_AQP@]:Y I,0T?6G;X\$*QCZ T8\XBV4"'IV&SD]=FW
M''5E<W>VLMJ,.EC)#'KZ<7[;%JEB*3/AQ^F?SX.2*\])ENY2.8(LS!;KVM3V
M]+^MJ1QFG9T1]P((?M=9'F[P4U95C[G6R*&:1 Q8%&CF,<Q^HP!!\#>E3J3N
MX; ^]C=A/Z18-.SP+(D*TV5K=1[F4((!6O8'+LP()11H'0%K55.X3_*_HYRB
MIH+%T8 P6Z-:II, :7_9A2M2"37+=FAUL<OI3.8K?">AE3%U!X_EQVW?+0O;
M5'!.HHQL-];5Q?(T2I1U8I'V,IA$=9=N_.I^ZTP#V-Z(B=8NO$G 37?@Z>&7
MZW@(L>X-.4K8CF= [#^R1^&)@W=(9P4).O.XJ-"R)^O6;M#M/I)KS))'M E"
M"+MX0"E!M 0$Z-<H?".[$2"' 2WW.=S@)HOU$_YIMJ;QS$8LL?T5/^1E#P24
M@W;;)!3N_K R]O;R>.J[^[M*1)\YQNN)XY,(=)"_I@A=); A5):^UGZ6[1)/
MP1IMDS#.T=W=Y5>T>45I;6K*9LYA<40F?0]5=D=5:W<>G>4[6NV@$(=D:MG%
M7OC7,ZVE)'?O=!W&^7J=#!Z3P%HL>]!MCC8==E_9Q8,M"*#.;W'X+[2Z74%8
MYSI$*YH)SN3.2M !X V&7U<;?%^9Z%FVOV)9]-TD^/;/PN5=\H;_$RW5TD_1
MT@\5Q?BJ*9[+4ID_"76NY>:0(8QIV#H$RR*/N'7H1=7&1L+Q4V=>5T2[[LR>
M"@=UMZV<@Y8NM<F*1/WUH;HW)^%>&D@F"AM["#8VCK4G84M2M,IC?.^?'F:E
M(![9XJP6,1:LNQ3RR(E7_B5.7C.4?L!ZW<;;7<XKQ(1DF8RA+FU^R@\I<3!"
MIE6NGWX49!-8\QB%QX0P^<KKLU@P8R-"LX<?A[TW!I^6*5,ZQ!)XS?-Y/I+S
M?!/&88[OKP_4F'!'8Z'Y2,[)3G23O=GEL$8;R%/X5^'MBS/4B1]6/G%R@K+#
M;IO$*]X::^WLZ--W5=L"C#W&^\UGV%B5F[N0')SQ$(<9DD<4R_B$SY)M7FSF
M5U4 ?H_1'&;TT[-&@"98456PD#ZD:!N$8! E491=H;)[#^O\#E^LA1G>XY<T
M?FOCPV>NK[1T]X! ODL?@CW;HO@GZ0Z)-O".2MH!0[JKJ0H+5"Y-5Z*-N_NA
M"G1'@.XM(2>A8AV.K-U?]$["M=(#NMQ8E$\BI<<&(P^Y,B:1ZG,X<\VOH?'R
M>]S;_*0 G\?X*CIZF,_R\-?G!GZG)18!5V&TRSL'_W4;S0/RYW$>KF!RX0=Z
M M\;.:37WY?1#F\PF@NPV>YXQ?>N\*@#?,@/T=@%5_7@S38)7?,P3MK;MY.S
MW\F@;8_Q$CH#W$HE>@FL*LZ?@*XOMC0TDY9#,,NIM#"P!TS!JN@'RO "D@H1
M(:2AD8F_Q&%^*#\.&=,#5EQOME&R1UAJIA\A*/>R59U'9!I$=I81IEAZA@D]
M QU4(LO?\^/6L@^:;.,$3T)A&)+U!\F)25BLAN2Z=9$TGNG+$YUND;X%,?-3
MPWL"9<LTW%)F%2'8JU5(2;^-278V_(,Y<SW0_+(T%RXR_*_R$L/_^/4A35:[
M9;Y(V2:19,$JF]F]=<TF"N"Z; Z9- U:W]:R3[C8 _'J/LC)(5YL$86"RNX4
M>9U=>EJ>[_T.\BRPI&'@ ]*I-1NY<[L)YZ\,@Z"'\4$X3"2:!^#^@^@)_P29
M/$GLC#WFAI*E<IOVLCS/KP'D?L;$C+W; HXNX5JRQK,@LO I6>?? HAJ^4!1
ML@6F\:.H3I*U,.JH,ND1"DLH)&;YNX'.\+P&IB\[PD6;H>0(,0_=QG][#Y?O
MUS&^YO9TX^FGI>LV_@+*]V/MMP,Q$"O 'UC"TA1"<)&G>-?3<]N9JYW'&HBF
MI]UK%J["(-WK9BNT&G7)OX9QN-EME(M>_;W;1T*;@D8B+_2ZT:EF^!Z@?A5Q
M*A(M:!(O?*O:5,%-$Y7EI-EK]#HIV&5#<SIM=G;3@[D,%'2QB;.G7?"5JN-)
MV]@.W$GR&W>4G'HOF61PD>J> 2<=+W?(%NO"\--FGNP)79'GM0OOI]^?9;KJ
M#'9_29YTK*4-EHH/V9/&2U>80OA1K#V9&2M^&>,P>N(',JN-Y;DGJ(/=O5'3
MXF+_C#^G@4C5]?"G3A-,20N>J^LQJIF*U:C[@I*W--AB\1U$2G>7NJV5*6=H
M^?NWY.,_R'9/]W36[!_EI-D/?GUYJLU0^(6SC3!?_6.7T>*<-TFJJ4"BV>'=
MQG!&*FQ8_,);43DL-7-JF[I;HX*=3WD0KX)TE;UL(>GYIQ\___+Y9RTE9GW'
M/<#<<B8>2X6O2-UVU"G?!QN\'[X&_TA2;AI5RAQU6\M>!3[Z(E8X:N2-_+ES
M+O87*%Z^8_WAMV[W9[6;1P3Q>76[2>O=+.^3ICK64/#%':-K[@^K'U */PC>
MT&=3-HM=!F>Q,B)!U714>78)4T I?O?D>Y!7"NDK;3:N&QIM=^GR/<C0_"U%
MY":H3THIB,W[NMO63#HW]JKV3F_KY5I1$9+;37239O-QW=[B32U3<Q6-+(L0
MO!41_G-9.!AO8_S/?$?<CKH;WJRCZSUQW 6F[Y/X11Z=)6LQD)[W_"UIU_/*
M1A,/D*2U1CL*5FT?=ZDT080R5O'J'N5:$N1M1Y15VEUJUG&H\X-;&;R4Q&;N
M=F^0O8.O O\!V9,?>%7!?I)?!FFZQZ*1X!FK=K%1WS&WA)[QIEV=+L;-U>TE
MGA=@1L\W<#]IF-]L.Y LEG$,+S3Q:<%$KM VR2"/*$4DN ;_'ZUT<ONP =TM
MS#NX9FYCT=X8XOEO(Z2T>[&2M:KEZS'B\;$!G##X[[9YP8<]*H;<;J"0>XKW
M/BT0;9$IC:']"'HT<&5IJ[F++J/3#BPS\3H!JT1/STESI)?W2-Q4<I_,J89F
MFWBB1.X8.GY.>JL9>8QX/(;FE)[JGC)R3Q4!/!*?T4GOGJZ^)^V%UW#OG#3K
M3'U'6I95W#139)>R3IE6^SIM3K4XH(HX5W/?SZD*]P[A6I6]U>96.NG]U=4]
M+]&X)!ZL(5CV@=+7Q ^FZ3UA_$AJ%(V3WE('N:(+I<O0M7?2'#1W!Q9L4UZF
M)\TH8V.#U#=YVEEK!SUU!(?4:7.G@[[>DNP]*09),QUE5^%),^=035/O99\F
MRPST3(5+_Z3Y-9P2-1D1?]@%*+K?3SMM]A"3E5FDQ13YUL5V5;.FGC:[AA-D
MYZ/:<E0E<3BGGZUMJ+3*C:I#L,<'V^C![YT#HZ:&R'/WR0#8\0[HZ/H?@GO'
MM@NMA*TQ1OYQ\M).$Q0P!(\FM]F*X$".:C'M'=?*^BFRR?K.:T9A,K;^Z701
M54HP%680:E8^+"L74*9FMS&O>\KZ'"68"IL[+9Y%2^#^+<S?N>&B)5',M+>[
MJN!A%KSAU^%;442"3%B6&FS4Q67V=8.]5SOZ_-=G[NN[>4E06^Y^6T?+N1ZL
M\@A\ ';Z!7H+8Z@L5SO_K'*J.LOFH'%\.SJ-^\;L^-QY 6#0V#B\2&T=#=RL
MS[#[##_H+L(H@A*&BW5MCQAO,H-!_%R0VWB9HB##MRK]$[]PBQKMRW_N0DS&
M;<PQ]"Z3S6L8DQUWR$(>_"T_67>YV^RP^A)^H,L@7[Z_;$M#P7/"UIYKAE\Q
MO01[\"'%3SA,WB'\Z_=!/YE8*(*\ZM0AC&D.8CNQMM/7!8.13'0</MB85.'#
MB<*W^))4&5_N;S?;IGYZZ"A^;L5#=MZOOWCBFN_XP!!?KWKE_=0#CDV>+C6/
M8,L+X=0Y9OZD*,Q)AZGV)QW]V/7%:;H'IY(H8/IN:N.;(/Z'8-F6%-%\RH,T
M]VG7=95Z[=P^Z7 D>Z+/Y+4Y"59:/[^'OV3/_#Z$WSV?OR<=\S,8TR7/9:M1
M+W^AC(QAQJSM$;*R[YO]I L]#,-0A;G@I&,X!COEO_XRC).=*J/7<?-@'X5'
M^!&!A@7>=922VAKXK;AXC4+*]TRX\'=!%.WQ';\)\[Q0K[*SY]@_SW&Q[+JE
MO?Z^14N\D,_A!C=9K)_P3[,UGC<$$FM\S)8&/U[F-$20;0;=N?<W&M'0AW[/
M2=,M#[$[0&R;)G;!\D>.EUD/Y'94@>Q;&]X/G:6'O\"6R)Z$>=>^".^\%&=.
M'Z!)6-WP-3%\ZJ9Y#_:\D9R?A-W/XV/AQ'LPB9?NY_-3]_S4/3]UST]="T_=
M\^/DK*.=WR434<"&W>^>5/)6*F">%^]N*>_VD":KW3)?I$\H_0B7JE*'TF:C
MUJ%C,\CF\8K-(5.6-E2W=7T+GZJ:ZG<NW[ED^M <=%JS6I&I\+1[S99I2(M(
M %() F 3!$)AM]TF:<YE@SIAJ^L0OIV_MO>-OPF!W"BA%XB6)MCMU/WW7''J
M\"\L;V%\D:U1EA'MXBE9Y]^PXGB%28^2+9R@]@W<;0#K.9/%K<74I@? 7I)G
M1LJ;.EC>"Y50O1A;J":[_'V.KW<L(.4K+&_DXB+ZN^HB^KMK9(X6'9?#Y6C4
MRXF\ZH\C"\R;E_JYZEG?-!$SE*K3Y)71B[8(HNVLR9ZJR/*YVIDW>ZM/A'&I
M=I\TBSH+;]#Y)^'Y[R*\Y7K5$&SR1?:8B^R.+[=39=K!>2/*M^.I<JJS2+IX
MFG8^7/^TX]-DF_%&4MD83ALPO/.S[>]CIO:Y#S0C:<\9\6CZ[MKL8$[F*=P"
M=2R_&VD!#=O[6;:90DIDG(7+N^0-_R=:JDV[BI;.+/8@7Q=K6O'H)EB2G,0[
M6/54R^'6;I89_++9_G,7T.\5M2G47-8U=\;JFS .<WRA?0 Z01[$;R&^"N=9
MAO*,5KZ)@BQKUMBH<;[K*,[(Q;-#481(W"K6J[<(*X+2%3/HX.YX)  @04"=
M40S@T!?[^R G^ ;EC_>:E*L. WA"))N?_OAK>CC<<"NTB<,UU@Q XG_9!6F
MMY0<V=.PDT-B\+V/"JO974+GI]EINAZ^D:'=7/H^SD@I)@05M7((Q-\F<5D+
M1$J*OH\S4FJST:Z&O*U#6,?-!K*LDN5OVG/=;.=LRC)M5+UE5*U]5%LN]J7*
MH2&IRPA>*<*Z>UW5W)U\*E**)%L(,UKXER[ K_,PSL^5 /#5J+NM.%S2+LX)
M$5C;,+&V2XD[]^%?DED]H!2J*@9O>$/]-0&%$=3\%&5YQJ':S$DT&<P9\5]0
MC-(@FL>K^6J#)5Y&2DE^((C*CS.]%FK6UW:D9;!&VP3\TG=WEYIH2DDS=]<_
M"V\AW@4XO>_A5AY(9]+#&1D/P9[@CSTG;-_RS8ZR+VFBA(QO[>:,H&>T?(^3
M*'G;7P29Q#*A6R&SOJ,&\3T"EJ$B$KK\W?A34@84BK^U+":NLV6:?&/U(Z_"
M['679K0((G/QL=U(1;1,@G0<P=TF3H,5 M-9RWZM-W/X),7/F]LLVZ'5U2ZE
M:6$ 0?P>0(:3H+8IGZ>F_6W;RX,P)36HP0I6/-3H3.9@6<K"%:)8NS=)*M$$
MI*;UWH,Z5YP$O;0R7[SEXHRYJ1AR8 CUTI: P=BF0!TXZ*C2[6OP/=SL-DKY
M5OW],:R3"ERJTQ"V$Q,$_1E\AZ2T,JD2?Q,EWZ053-JZ^+04)<3K[0K/.5R'
M0:%%\/<!5K&%S8Y_M]N(*D?;>\OVUYRQC\]08YOY&PK?WO%BSS_PUGQ#+QE:
M[Z*[<*VR'/0:TO).;SME#T&()_=?85P7GEU[^VB6*[+$YYLDS<-_!>SMK(&\
M.W0TGXZ_<),SO?(RR1IUF0X8P"<B57<%-=,7YA"F]<0K^(O&VF?S"YZQB3HG
M\PHY;06@#AG)"XNU@97:_?H(YPL.UF+-;XQKS.)\3_8:1:LP.;A=1_.)_.PA
M36X@-(M%.9J3VNCI)5GW**=>W#NU,<N\OS]F.A9)CJ])>C>:VND:_=SI??#]
MRM$QD?:FUXFMT;UG3TVZ]&1'?30_(KB-HR^+\']5&.1)9R7I/,*R2,J"6]J8
MQDFP[,"(2#%M0!=E. D>=H]0%-FG#?T[U7Q4(^)E6TT?7SB)[680EUCEF3;^
M[]1WF%',H,@O163>J?-)&Y!8K:74"/^;Q+%KB2$4662@MIWZ=CH@9%'D8&>U
MY-3Y*5-ME1I%JQI\ZMPZ-!"S[1!/HJ"$25"GR*CNS)X*!W71I"U;S2AH<Q+W
MKE'^BLA-PRC023"ONP%)&I(Z"007"Z80;6SL))AHX^9M>;*=*I#)H;='>R3S
M)':>A>-K&$)]\B@HC=AKCGI2B8#F;/C]R>IQ-H29UEHWQ$[RB8&FHNR@*/>3
M/H8VI5HCIOZD@8IL'-Z:$!R"7\=X3 ](>AB"=1\H?4U.9[,=XD8< ECK&'>D
MK526\8#*CGR3=K+K,Z[^<>J[U%:.T1#\]&:7*C(L^75<2T]BK/C%[N/#&V98
MO5>4KB/.Q//Y/"2W; CNG>0&U"\#8^.?IKX)S=(#A^"6=YO.PKFUDXC(N/WG
M$W^]=.5WO\Q%QM2_G+=PTCW9L;#EG[;>TW5''IR*R=EYVKX1"P)5F=K).7C:
M=M@!5<GVO%'.XE.WHMEA<DO6*6?F:=MZNK)2?"26/#I-2X/%,"VS)%K.SM-^
M*EI@9S,IE[/N_. Q95TM\9<ST.H;YN@9:)!6S!EW?J=4GGZVDI>Y]_[\CCF$
MO8WD9\[.$=XQ?I7:>=IM-D&ZQY=PEH5O,9SJQ;KP"#XGW/P#KD!B_*D8?<XU
M>8:LR7.,\+83*Q%S(FB^+<EY!@?A#/ _/)EG?/PS/KXG^/@V7$7@EL._ %7W
M(XC@.6&^IC8_>JZD5Z:F;W=8:>5U@VN2L*U:C4'?X3$R#]\8$"04Y]SIL41X
M?X 7$S<&HRC(#_J[>U27/6[G,AFP<9\V@3<[X#2N HY[]! %F&@JGDF]\A%N
M!/6W/=ZHBRTQ:L1O=RC(T",$"RS6+QGM.O3FU'_\)#;D!/&TOR3)ZEL810IZ
MBU^?Q/I6Y.LB?U?>7@-_U&,1,U\NTQU:L;1_N'G(E!D10ONAQ8WY1#SF9E5F
MCL@]]8=/Z2!7;-+41&\&3#S.'$Z"U<V'SU!?\?@<TRS;RR@(-T.?7/%3?G!$
MF)'A#AGZ:]ZZ*7O Q)RV2W<DF)C39F*+O^8,IG@&4SR^I*8S/*",46=X0)_2
MFV0^J\G>.+U**9QVQH@-+<?,&S<)=KJ"7I@\2)YC-^NI+\.0\%2GG5 V6F+]
M&5S.H9-]$EO9I3ZK<;Q/ N7.V2%H<>!/ E#+Y<:7X52<TS4K./!%/, 9YVA
M@X(D$.$,4C.DY.T0UV 5O^8O="%B] ;H#^>ET =%6$6Y.7[6.PJ=L(N6<UX&
MI=-\&!R=) ^B8V3SL%$;9\0=6[PVB@<9!'U'OK5=I58_XO_\6N97%^G37_&U
MAO]-H!+FJU5(:;V-UP T ?\XSOSI( KB)7IZ1TA13JH>'J;NX"PPCNA\]PG%
M!JY<@MIDEM9NSB/]O,]J+ZK$A,NG)-H1>ZTV34[?P5W2,3_E%_OBK_\98H4V
M7;[O[[ &%>GRC<TZNR=.%&'-F>J3^#N-X>[@2*23+OE=U=S]6E6D$6'Y:@'W
M.)95^ *["+(P>XF3UPREQ.!^&V]W.5SS,8!:!U(-0;6D-C_EC'$,Q>@F2=M@
M[VZP4H2G'K_- >-(%K=O9TSW>XBL5$8DT,_:FU#7PST9I3+6!AB@[>*>D/X'
M30<%8?TS[ADF7#8W*?KG#HJ^=+ZFZCV](BLKUL7L@.JZ>J6N'A/B3*F_R;:-
MF>:G[&E9XV86;_%]SHS>;<^>SMW/6!I%])[T]B<!/0Q.C6+\2>X?Q<[I->3Q
M0Y,I9B*6?*#6J8+\^>H?NRR7P ATZ#C@;)F5_:\)9+%0<&7]+)L=W,L_08;]
M+<S?&TI"5M42JBI%H0M3//G;>)F"(^@*T3\[7&SVOWTJK.6HEQ+<FC&^Z(R-
M7Y,8[;\&Z6\HO]G%JVR>7P9INL>S):0J6-'6Z^AV1:98)!T3AOF6)VZ15N.U
MZ.=KMQ*?DS^DR1\M1MY)<*V;@;B2JM#-^GKR"5\M%MJ*9UYSOD^=3T,:@B7H
M[X?:3:=U^+LX4*0R0&:1G18+-<9<*<>LV4RGQ>9VRVGK'=6P3$Z"@_ZC,7C'
MLJ'\&\X@!OSE<+N%NNU8-Z3!J2M29H_$[K;U2>1JGY$"O%3:^SDDAE@*#RLH
MCG$M&0GF4T]\[RXD=(AIIQW)/;2$Z.)&.S/<OA30&@=/'85@],TM\;I.(M-]
ME!>7TE [!(NGM(U']KM/ GY@5#%O=5^<E\??(U6-MY@$LL18*]4:TC$$4,5D
MN3U0Q,EXX!;N"^U*?21%Q=W+]R!^0]EM7#3#/],[5,\E=P=.3CS>@.-S.N)I
MI",*1UUBB6U)9C+L['X=SVE-Y]S.<[QLUWC9<R[H.2/PG!%XS@CLK>8Z2-_R
M+2_F">7XY42.P#AI,>('3X6)#SNL,@>9$@UAL,\='0.]T2M^_=D3.Y;U.*')
MQ/,=7S:)=]SL]LH^1YF?K=;VUVA+G*]/>9#F7J[4.7/EG%+ADW+@5TK%B4:?
M^)%-X25SSXD4CL-\SXD 'L:[5.PHYX4Z)PEXR>@Q3X1@%#N'RY] N/PI,WS\
MM_2O/P\3#4Y?T]>Q5W5%CC[$>(2<"/=A>KS265E3M C-X[\Z1]V=H^YD+.;[
MHR%':RQMMG,^Y9:9NI_@/&X4138.A.LVAC-22XG#)ZP+:U.UGFC(Q@G%-A3;
ME156NMK!E4VSL]IVN*R+<T):)OWK3YXH:&<G="=V*:\[;>'8*7C-#KJT1*XI
MKX(IVHC/KAX5MUHTAK/'YNQU&$ZBR]632?"IP[F3L/34+?6==A%6_@:QTZHM
M@.Y-3'6=X![EY8Z2_/(H[4TW81QB"1I^H(8.]#7X1Y(2K+'[8*.W/G4=Q5V)
MEUV6)QN4/J*(FKW?PZV^>JBNA[N(9C6_VZQ:1ET]).PE0^L=%E9K9>2U25</
MK$::!3 S)+4.X.'J91?[4A#H\FHZC.#<8.*_L5-97(SJA$_).O^&%86B\L->
M5U&LI8^/N^Y+FF0';#7:S789J2"'@!NZX"B*T#+?!=%#FF =*-<PWJB?C\R?
M+Y>[S0[?FF@UWR1I'OZ+7*#=ET,UD,,BM&1)M'I#M8V/ZZ,I+J7OY(R8YS18
M(5 C]:QO-//CP76@JET!!-:IKY.P9G?1?"L1%T:*Y218V%T5-6.D1,<[=:NE
M10]"^UJ<.C,/>#T8;DRY>)TP/]ON&\-7PB2LR/9O'/XLF03[!KMM!C;5>\?(
MOL?9[/TYC6!L^T=:^=BURM"_4(;&Z T^]'Q$?#5]X=2>UM. >;>_'44@8[O,
M2_(@.A+FF>ZYIEEA/+!N+]V<\]4JI$3>QNLDW=!B6L?HWCP>4WUO4L5KI^F?
M5M#6TLF/(][[E=W&FB%>@JI*65X>>$%)W^7-)B+_CE(,3-!?GHF+=OU]B^(,
M/2*X O%>A\=8M@RBOZ- "3QI8>2SM_U\MSG8YO=8WCQ_0]$'^IK$^?L!)]MD
MT"-A!AS$YV^)%1[PL8Z)=/SE[A%#^M&.B/R;9&='P!>#V4XC5<X"/KRLF5/F
M:_R*4M#5>S@?E]6FC]ZOQ_G!AC9CM>;LS+5K7C]91]G9BWMT1[ZIXDW=!V21
MN87*>'8&V>4IU47//@VK7*6JX#3*:W9D:G\->QJU,(?UO]DM;2GUO[DW*C.S
M\&)]B5+\M_@RP0HY/J$KJ(F81.$*'-9BK>GY<HF_DF>E[L1_\HB6*"1P5U@A
M@^**H'8==Y:=2#B)W46KDG59BXW.L+,[QU-CW? R7>Y2.'8JMY.NB[OD0+;7
M "^/1UJ3?==*CTE/^X83O"OP^12.2Q0EWV"KW"3I)18H87Z7X$ED\]4_\)PV
MS>GW&,AZ1E+;V9<O0,?.?MPWW:1!Q9&I/6J3,'@<SCRCXSV)9V1W'O81.0-&
MP)T 4SM(OO'BN5SIDX_X/[]:52H?4K0-PA5[+T+TZR)_1RGC*3/R':-*626,
MTT4)XM3I]<HN(SC3R:[89KY,LF)6"GJD36TG\5*>\90(S+2[<$EVED8_:>_D
M+I.53NTVQL<-3I%^JY3-;.,_OB=I_HS2S17:)EG8"%=3-'+&-G)2JN='OS<U
M'=P243GNNLE7&[K>L#JA=;BX\T23.$"TBWJN7&1.XG%P(.=,1?LD'@<]=U_S
M1IF$%ZG/SI/<?I/P$?7<:;I+>!+N(!O\J]V<D_#WV)%P>A7D[/OI]$PG++Q+
MXC>\639'_"H7ML)]$B_I;C".QC;M[<=KW.09[LE4+X-MB,].^"^T8J>W>FR-
M5ZCOJ);?S=<9EGG?+J,@W)3V0]G;6=[0AZ?G5\PD%&'9@)*=L.O;3XBJHP]$
M=:%#/W4'UV-'&:9\>D[DS6E)T"@T,_T*3(+!!^Q'G7"<Q".^QQDVD<V3>-+;
MX:&$;6<'7K>HL'2'5 X\H7ZBB_>".IK%;,X*;?/ 05Q&@)&I;K91LD?H L5H
M';;9XULZ.2^0=IEL7L.8;!QPQ^.-CZ<%^S;$AYCM)U8D54]HCP'=Z;);,J7X
M[0X%&3(DM*63Z^WYD"9KO Q$RMX@E<?6L).[U/8@(L+@^OLRS-!S\/TAV(-B
MHZ>FK9?KM;F-\:4"\S)<%DE[M^\^01X;.%,EK5VO@'BAL*M&^)%^-5KZNE7G
M^MW(M>A+[35WTJ\Q>VSL<\&>]./-'HO;KN\AWF\^)*%:/^M*G>&D';3VV-BJ
MK9RTH];Z=I2I22?MLK4H$E5:VB">VM/CGZ&:R+CYI\F8N%BH_T.0YOOG-(@S
MS#_\J>QT,#05%&JJ>.EZ.'OG*":EK6NH[^,;*6V)I*W=/,#K4\WQ8E_YC1%T
M7Y>Q?%O+NQ98RM9N#@GZ0/%.:3(H?FT[A4"4W^IJ:K)FOJW]?$-\((NU\+..
MDE8V@A]>-8/;1%0[6J3V29M<NHI[.215)XDZ"7[VNFT,-N=PM:^\8Z7I[57E
M&K\@QL3=]H])BCHMTHML$IMIZ'-Y-[&*08<=S@XJR7A<=!_D_HCP9;M;YKL4
M=SF=Q[T8?','7VA[$FLZV,>$,3-;Z8I6=QO"X4M V%T028JGBG^&T@^DM;/H
M>[DKU(O'!BDN3$^[J=3MW84!2?:Y9BF4S9T1P-W43UC=(IF8VIK)JM9^G BR
MKVEQ-7SU?.ABY[KW]\+J)9TL"2DWM76UC>#'2E:E5+N5RZ"K'X15>7Z_@].S
M6#] /B]HKM=1N(%@!ZQ:(:PKP7^7ZB A&R-;OHU)) $D*;.0#?6EJVCIQS)=
MO@?IF\8X*6GJQ\1O:1@YV0-/6)U$ *X%Q:S ([Q(+Y,-UC3?L9H3?B#ZPVO0
M+3/ )+V.=QL64F-"N*U/^<$X)B_T47FZ'GX\YMH5=1%2K)OB/ GK@J&*72D,
MJ59C3QW&OTW]K03T:;;FJ?.I]:4C,DJIDD_O )IH]"I_1JNN?.J;KHM&737N
M65!8)[%7#WB:*1DMNVM.?8<:B47MNV(B%GH+![EXTDR"93U/IEJO&8)[/AU)
M*WO-VBOT5#,0AK] [AI>S)-EHI4M6W__CY>YX=YI^90GR]\>T7:7+M_Q-?N0
M)F]IL/'<>YFEN6#DP?\J#3SX'[\^X>L.-6EJNF9:&MNU3ATT::E/K+6YNSJE
M*(#B\ #GD,3X!9N#5'_@!X7LM1:G3)<1/'#+D E=["^C(#-TPS1[V YSE9YH
M3;RKKKV[2CO '\:M-A^0O*V[W5%EZ.J*7#+TC4R.K8H.@X[N_/4I?H7MTCT]
M@<M_[D)\'.=@I'I#<._B69(IJMSWIMV]7+6_!M%.>;);^SG.[S*Z$,ECN_46
M.G6;Q '7E]P"*;D63I5WIKI+&;VJO9\F83O47FZ5'65PE4R"8P8:EUZ$3<.H
M:KRQS*_SB9D,M=NKA<VG;A^T(K:8+C4>/J1[&\L]RJFE$RK?\9/UM-ML@G0/
MJL9FNZ/?7:PO@BQ<SN/551CM<K22]O3'#M-!O?X;"M_>\T+&<&<BO<06NSS+
M@W@%/B!*>,D\LLE:C :6!G?V]C"=/]D=/7E QW 7<QRD,9Y%L9E;5E;9W!D!
ME2/9,GMY6S^F;C)E[TX$.\"-3=WM3"A'\>94Z ZZO*TW4V?,-9P\;^V'@F/W
MDA(UHHX2?B)IKVV7@<A!A=R=Q.M7>^<HF329;33ZL55?0X.\EJ7@5D=R;&VM
MS23,$%T8JU 9)E%WH0^?"OUD2E$><@M$64$ASL,5\"7\0(V3>?U]&>U6@"QY
M&43+7<0L%2=GH3CZEZEB/=%REY+@>;Z0-_@L58Q.=5+, AFL?,0=IGF_V5_L
MY0-H\K^'_*)G;+P/-DB;S=_:S7U./)BP%UME'FM[>\_6Q'BC-2S[=O?QG?L
MG9X44*2;8;C#QK8<$O82?Z ,7]8DZC5<YBR6X24.<PTTBD&O@>:)N4&B3B$,
MO\-$==V.3W&U?9V?NN][A!N]@G;=>O--D^'-NU^:W]J\7B=AR1M&1V_?EY:.
MP32W].&JD\6%X5K')(Y)%]%BK.%,PH3HO8"YFQC$YL%;6:L$G\.G!C->/I E
M?4=YN RBJ_((G(V8AS_L&#1$\(;7Z^'II>;Q1JM%_ P9ZOD=^D 15/1]#_'?
M-DTTIKZC^2$33)Z!O?DVGJ+@29V=ZW_N,)'X0../8%GP$ 5Q5@OLI2\.AB>S
M/THW!7?V07[X!N"[V,9-@_B-K/S%OFSR$.SA1_-O0;JBM(M;J.:;O?Z.=UL(
M$?/A$F'>1OCZ@8XJ3\#X$W'G6AF'5K><]L%SU4IJIJ+5,/NVY_C'MP/;S/D6
M!CX^IC0/!HB9F['DG?BQ4V >C>H9GF_L.T?+LA)6H]1:VF+(A_WFT;+R"VZ8
M9[<Q32JJ76ODEU=!CFZ",-4F;X\\"V?L+M>>)AQQ4D6H(4+IJT!IV];L.:B_
M>T^I!)@LNQ6-SN(,_&5S)QJ_I.JDE2&^=+1LXZM?T/,,\<.W<9Z&<18NAQ2'
M1I_VE[%MAZY!GHN3WVT2;N%4;K-L)P,M$&PQ!3U*M;O[0/[NL):U_2LQ_,]C
M LP.3JSG!'XD:,#SM[<4O>';=93S?/A\_%V"MO.%WV5K%!(8&)?'O.LT_&5X
M=T('VLVR+[EEVVL[,:\''\W:=GE$X&TD*)DQT;]W002@RI]UW/9C@D>[MX_"
M[/OK'TZ"P>/:H(Z9:6SUP9[M8%>:?OT4V#OHGFQ^YVA9UOFN&&.C]IS4"2_&
MH-O:^/-^A'*X<\=7<@7&4E2&""K9T@=]'J2Y3X%[UIW25A;LKA$^>=J1P,.Z
M> <Z0UQ 3NFTC.$:M;E<G1V(DSAN=OR$"E#DOF)T$BM@+]!G(.%6$:/G)?%'
MQ[/IM9Y$:L;QZ!925_AYC7S4*\S<[^>U\^$J,Y;&Y^4ZGFNN8Y3&) #31KSI
M#HC[L+H$?Z%+$).HA-4I+<+H5UF/<)3SJ7)VO[5LDU.O"'HBMUCG,*3QX"Q/
M8W$'?K%)PYJLKM'YHO,Q5NE\#CT2LM8"I/BJ_L&^)^<Z/JFSZ]#?=EZGHSN!
MQJ%H;%W_>):J7IP]28S;_]_>ERTY;F.)_LI$O]=XW.YVMQUW;H1RJ\F8K%)&
M+NWP?7$P24ABFR)E+IDE?_T%P)W$1@HD#BA%S%2[2@"(L^#@[+A0R)I3=VJZ
M74'J'R^D!G$8U1/VYB,<X)9 M75Q'](&:^0O5K8"(N"01G*"IO.M(<924LM=
M"'O"=P:9RY_-WA+T1X;I?ON._WC!GQ+NFS\>"@C"!O;LL9=60).U N*TR'OY
MB%YV499@B8U%^3,BQ$ H;#5,?BS?M,9'A=\.?>1*E]X4('I3]*6)0+SS1ALL
M^\;8):C,;UZ"^2BDF!4 (9QC[B60]FZ$=P![K+&MXXWLHY >=*'L[X^SKVJE
M%TM;6G^S,7[ME>NB )MN6-(14T"I9D?K=Z:['.O[K*_;*]V)"@O8=PK:[RJN
MWK$Q0Y04;'72U$'=9T/V.7-/^U#]3'QIML? I357_ZP!"#TETVJ23^EN$?W\
M^BG_?-WW_"H*LT1\L%6FP24Q#^U?G&_^/MM7*CM6\]S8IQZ:)RQL=1]GV>?.
M^#4V#K=RC:GU9H/JM#<6QZI.-89TUAL:3\^O0L2+YVA&?D-M)?597YSX=Y32
MQ+.Z7SH+\TKS]'>^K\02.78,1/%P.WR^YKWGMSNUGTN\X<^C^!UY^*8G29YD
M6ZLLC8@3U5V%84:<JFZ,\$[O\<Y\*H#X1T'O!^P3\\WV_@UW?6Z0Y3)9MZA7
M^:1]B"2Y-YB/5E.T;VZM;1]JJ!X4>?[&=^D4>GS(KT[07(DXQ+3SVH!/0Q)=
MM+CZIJ]GZ5P9$KRWH3<)M.6ZFF&M+X#&KJZ=@X_Y*M]O8XMW&<G!+#?* O&4
MY?0K"_@B\]WJH+00/QY$+>O:)_I*!P_6F#)JY:[3'8I?=EC59I55ZA9_0S^_
M> 3/WJ5=^_XL] 23/PK?[!,!+^':2--^RYQ+,*#K(H_-1B1I)DQXN%"<O,"C
MFV<5M8J8S9U3X6:F4*4^M?980U 0?+5)\?[HTVN2M^I.6 U&'APKR:B9O=9U
M0"_]B6!I>E KM8^=B#,%CO"=]18!2Z&<LH-:FR_/H@\-.]93/18Y-H/H+'!W
M:6QEF@*2S":!V&S*V,5?+RH)5$U<<=*4EHXG8796$S^,7*CS.&[3-2?0FY%T
M'M28M)FL6&9,T;P(DBA05XM4<L<NK9[F[UPBS5X["Z(P<]?T-!4198R5#6'^
M<[&ZPJ3"MT.UI;?7D0A;I2R^2W.H^46L-*/P0I03<VY;1AD_;['L#Z-7W)Z;
M]X_K3)BB_0XD^:M7K S+9;VT-M(H(B19MF4C&[UB AZV+7ED16M#(7A4T"]4
MU'*T+]C5(%%&Y)F7S7J6KX3HYVS-6?&7ODGS&T-*>?>7+D?S$Z:=QU]0X!\7
M"LQX-(:4"Q0$^N>%0#->(8WJA +_/UWP/R/^JVJ),BBQ< M-/_I/*N HL;[L
M6- $6-=37%*B_\S]Q/->RH,+64HJG;FK#C25U)\<_?[,_2,S9RH)*V9*DESL
M]>$D4:W$*7&LU?1>O'/*=$E0236MYOKBJ79RR5&)]AF,<%--G<7]G.L0TFOX
M3CF4%5JC%$A6+IZ&5["RW?/R6^.>4_NW2]?;2_=/4[6]7Z-"4LJ[@L[R_06B
M^-):8O+8-^0FEX YLZW%S\Z9G<]?NAQ"YI7B%4N#[-+?P0+1#.P^_NUOBT8R
MO#9$ [:V0,)<FD2!)U'[TH9'HJ'[6R")&@].PZ//H,TMD#B+N'M^^VF)I+&Z
MS]G2*C;8Q;2++4P^NZ9$D)!O6_2U9R1.0:#\K7.:8@HJYFI)F=@E*1'2B>%E
MQ2V:2)<N(A?N9_KYM39X^"FG3XBV1%&!Q/]31IR&UV]K;O, 3MK8=B@8 0VM
M70W:Y^+E0B[=@8E)2L9SK?<VM$N00:65>F*[UB1JJ*:+960<6Z1P2=:&1<?!
M(9LIJJTO=)PYKG.IR 9(PD$AEDF*NB\*SFSE+S/8>Z;J,)[P'[^I%F-0JYA7
MX_6$7((OCU2 AQ[Y%SPJ3*+ ]VA]6-G0.EEOU@?2-9S@W\JBC:JY'HK??1=Q
MN#,OC,/_M=X0U&Q#_T_:0A7S&0T"]3B^$Y'4_97+8UTS!K$KLJQ"[SIPDJ31
M?.7.#YW0]9V@/A*2$A#-'S&'K$J2Z&%NM<HGG=\RACHLDJ,]JHCY4%*>7Q,E
MF@$-#&$1@'B.,5 (5^ KT0E0(DPP[X\S=_Y0@)?;8G&1]V[$_UT(4"$$TFDF
M$_X15DYW>&LWZ!T%T8%PB I,*C.-@?49A5A!"O#>5M[>#WTBMXDZI@*8VEP8
MUL)$BM0)_0G.,K)SHK+"SE72>L.?!W6FU(Z:1!+J$F>!:@5M2@%A4[[+9@O*
M1(^T]?2CLT#4;,=8^^UY%KE4@_E8KC1?\,9)II'KYF?Q0LU@U"GJ__.]W6&^
M2U"AA^)SV,CZ6GF>GX-Y']).^12M-KJ4;]!;6H<I9*YAWFAC!BO9PGISC9G,
M3^\<UP]H$*%LBT_"8=]S0%&9::Z?#\9SS8*R/CWLP48W7S.)R%7*&FG.K=9B
M!8%_DS$0%/\_$(D2"SV;TFEC 2(=Z#Z5,I7NE/:D>]T?_LB<_'NK;8RH%&5Z
MDZ3#@?"'$+W,H09]E>]1\(YOL/:V)%Y*T1Q0["XXJ=SAH  H'@FYBN(X^B H
M=P[XE_0X "CN$IK/\0-*4_*V;O[UY^QM(V(FI2F@2('U7#\>I3IT9VI&?/=C
MN=;XQ4DSHGWG3PCT<:\P"Q3ZK[.8F#2GG 3N$B  50#$9(@4'U24I.*\B.XH
MW1*F@8I.AEOYY2<.MZM.-:H8J\.D.@N&JT%B1S:=#$HVVUEX;,5F7A-G3)MJ
MZ47U D.RY>]GJ(-+1XVJW5=U!1=:8&=QV/A6 Y^9I@RT06(GD6W;=JT+3<FS
MX".9#2J[ZMK'=.F<=:)>P+>-SR+VI7@#\EER"BQ!8B^9X%+S6IPA+PT^B3W7
MR!015( E?HI'D(O=*= $Z00JL)6R!VN^N#)LA(WSD4W1S& IV#N3I]$'8*?G
M[3N+)\I5I96R&_(LGA4?P%92'^=\1>7F<X?(D[A^FF<,A:0HE>3PH=#UT009
M1-_-"-@SVA*HGM AB@E,R\F'ZD$F*9#D#3<69,B;&U6ESN&VV"(O1LX?;[!:
MK(W4Z\C;WX>>_^Y[F1.\$#XB7=6BA/+<.OX<1]EA'>>G+46(]%JC"F;B8VW]
M-L12*[=<%(FH[WN@4/@81QL_?8B2Y MRR"G^G^CC-4'>#4K<V#\,1)#*:C!N
M+]F1;EY?@M,SA:<.H+T[!%L3'M2E.ZY.1;/289[%]V!>S7K.WA+T1T:2_-^G
MR<[NZ58>VOBAWX&E,^ED"&F+E"I[7]K<A#9)V44!IGF2MU-Y#9W,(PTJS:E3
M5>V![&W-_D!SEV>Y%V&;A_8@\YO-24Y*L**0G@)^7J1XCD%0N@S,W7]OH+%-
M=U HS MFC[5WZ[]A,>AD@4%KAZ@244CY0=(+HSO.;..>9)VE2>I@72G<\IB\
M-\Y<(Z7J0GUT?-)GRSGXJ1,(,2Z>8U;&W"=)AE6E+,98S2M2:=\U^EO1G^WV
M&XI=/ZFO<98(&K2.P?Q_K/F$R+MUXA!O5-PTAC,8&KWRPZ&!8**%S)TWU\WV
M&7VVA_8-)&(W1CMB)[VCO*A3?/:4YYNE*[9HLMC=D=+QWB$2D5$X#R1(.9N-
M@*F8".W\4517?0#(F,=B]Z1SXPB9R5\+&N@Y1;C[%1)YQ&J:\^N%V^@\0T$[
MF9)&I7TEY;2UH)&4<N#*Q2IN[JD:2,/^=&@ YB09#R%COD%E]-]9D@?57B*.
MEEF_<]=^"2_??]FX)(>M:$Y"!H@NGLD_:PRA/!6!.!?OHACYVS!/.G&/+S$6
M28Y;M.RB?PMRKVF%G:\H76]>G&\<-$[T,9#(*W?W2-RV>-LI%HAO64K\12_1
M(W41C\"2RJKFHH\HK7?*BSBVQC"V6CM7F<[X.C1 MNFE/Q,W,/+^^R]I3$]O
M\8]1F*)OZ6U '5WXQLJ=Z#Q??N7I]L/T.\_?5ZY\)P@X'GRN:[/EN^_X$@6.
M^-&8^*\>)C9.4!?P*8.ZPRO';O:&/N%_)6Q7!P0YH/.?011[)2%CP:.NK4_[
MEH$UCO1]=R9HP$NB?_):GD .[")_<ZM;&-O+: DF"@?GA*BHG*BP42(_%4)W
M<KM!7\]I.P7H_0O"M$#H>WXMAUN9Y!(/\A1H^"LX\@]W/5N.%V7VX+FHIX#_
M!TOX0NCBMAPQZG)#W1,^!4K^!I)7Q&[S*?#P=YOP4/K:IT#$CR 1,=P_/P5N
M_F$);N0._"FP\T\HV#DQ## %;GZ"@IOA<8))%'B8K@RUL,(D" %GRDT?A)@$
MC^!LHJEB#Y-@#YSE<'+P81(T@5.:.T$)-:"+M/9VHK>1-/!&A["&I*6N]\18
M8O=5EF"4)TWAWZ-!)^XCG +@:4#&_I*K8^-O:J_^*2YC#&#&_NA_Q@@),X#E
M\W2GJC@;=(BP5$ /#]?\!K.L8:"0R\_#YXT&M7TMO&$^4[P^H/5K-/<>OCK\
MC8^\59*@-"GV[&']XL%WWDB_#5*JC?7>/?+HL7W!8OT*;_!WJ1C0\Q7-1XJH
M5%A/<!^B+?XC</FGBC/2VFB]RGW%?D].]5JP/'JG?/1K'P)+/H/&@E* 6R+"
MFTRB@#-+\"$*<^M$B!W!;O5$F)'*HPQG2TB2&2]Q-5W0EL?6APMDWNUNF\%+
MZYYKJW<=;QW,#>5#L8T*]\:Q$Y5\Z]6AJD^&WE?2O0Y5W2+PD>?9P$-F:M;Y
MA%]EF;2JL_2J\DF<-M1X_+=:A<=_^>TQCKS,3==QX39E6%7<828V2A!7["%A
MFD[BL?9M^60+C\.^94>6ZRQ)HSV*F2>K/TCS+KXX1,\E+P&BY^Q ^G"0QB9Q
MM,%'A(J=YVB3?C@Q:KPX6>*';V1I6'561GDB#R!R3E[]V_Q;8F.X\^NLV_J"
M;\E]MN=NK/T[3(Q-?:)712L\T8&NQDPE5:@">1_^LO/=W2W6-=-C?LV)MR6:
M-M%.7T/_'0NV7.$ES01C+"_RZWCP]@>O-1%,I'&/[_E.W&WTP1MEG?MIA,98
MJ?,JBAMH&U'H;I$I=10-8N7$$N!9OI63H;?#D2(P<T\Y&0R=T%8LJ*C?%=PZ
MM%#(B)+ZW08:M.4I:NBMD,&7\ E#<2L![*B;H(&4W@H]*Z-%1LM@Y E_%2"G
ME?$SN#)UR/C:2H",A*DD%UM'L+0L2,N5+S+8+*V*T8&7X>:AI?4R.I#5M#LM
M#XX\9_L]A@/#Y&]#?^.[3IBN7!>O1M+U'Z/ E[XVH->V[W^\1X^FD2\:KMGK
MT/\4-_K!&VJPSR76^<,TY_ G/_G]ZOB"/R?(+1/-@ ,&V9(PLTPT8QE@3)0:
M)_$"%SW%/Z-H&SL'?#\X 3?FPQ^K9<L)<O]S&[U_1X]<?,QW7?REWG3Q#[^]
M/G=VV/@!0D^JNRC^BCX: B3&PCO#U-]+FC(/6\,8J(1QL5;NY;>DL TE<ZBM
M&S>?P5KSPS/I'^'$7O)Z(%W@__I?W__X_0^RCJ *<^>50&7M1E.N<(*+_+'V
M"4TS\IX\M;'>?''^'<6EUY2[=?Y8S1I9N?HZY 0DV8/@W/M7QRL4NCNL@?\^
M3!5K3P,$4+FO8=I,=]K2 #(O_'L[?$0Q^0=G2][B50.J.656X7--[AX4'YPX
M/1+API'RS&'SYD94'256VQ@5SZZT-\65FNISEP<2@/-1W!(]IA<_"R&995K7
M2YZ0B_QWXGM04>_ZP^=->FIJ#"Q3AS/(/D5HJM0HO#KIL^'>^23(ZQ-W'?YK
MFM%D9Y&2I#;17%O8*'P5OSO1'#&1EOGR$<FUS'J0W7FLIPM4^O;Q0'$JG&.N
M]-,)2%.;=Q1FZ"M*A2"PQ\YXS(5<JC9QJO.#1RG8:<UAYKC7278D#(;_A_2:
M>\=4)9ZS]-J)XZ,?;D6=WM7FSLD28L2K3C5*C+N;^VN\KXP4;^V)KB) ?G_L
M1+*8A3%,:!HN)1NY00?R=FFRBA%-O:(]*D5R>]R"Y@BS(\DF]V'3T^SC_1\"
MQ'484J\H]Y6E4U:T#PTDB$H?M=>+BW)9JQ!RO]_C/V/,^[>;#>(^F*YE:3O3
MP!4BXU6F C=6;4G:FZ"^7B&4W6X6+HBU6H(-476]/G38GQ*N$F(AR&C&@D'#
MJG0@1@6/FSS!CFQ:@AC1V9@$,]8?$Y6 =J>'MDK<&#0VI$GCTFARF5$K$#"6
M8("74GXZ"JP_&DH.WDK)8H2?0<,]5KUBQJB%2D4O:FH)7@8J6B<CQOX#,\ P
M40M%0T:$6I6&)$]8S!\-Y1TR)N07JBAF7]4JJ<>6+4$&[V[5B@WKI<: /.C6
M:9'%Z)>&#D[R$4,Y9P3Z02-#*C[XN0#E<1'H:9: SA,6)\!NO6@8E7)4:>2*
M^0^0*T%U^+>8:1,6 SW<)&M$P6V%>ZC+?Z:F%O-6/"OHTCR)"1GX"70C<;K-
MTI"AH!EQLG8LQ<1T]^+$HG*.O@#CKHAF5HRMD(]QOZBE-D'&R!Q^F(YO#S(Z
MS(B-J8_/7(TS1AP?1C(:9 QH5;78GBR;FX&,4;)'9OY!1I-VH3HP^F[IN\.C
M9,@I>9.0\:15T@CBT98^S3PKKU3)I9:^U3P7LOJ)I[:U=*J[.17F[A.B+][7
M_Y[4CZ/D*$KNPQNT03'68(HY)W9S.CEG&&_6V6+]=$MU</*("]U6C]R=?&#I
M-&-)T)R=B1Z!%$XQ63J.+2,W_<5/=Y5MG>6VDKAK@7@:2(!D9?ZRB9HK31KO
M.M]AJ7B%MGX88G'0.;Q73D":^O)K?$:MLT0" :@T9^RQ?(RJV\=>;<ZT/(<5
M]RL_P-.VR7K3X1=EAE-8!"9![D,W1DZ"K\?\?[$E4XXO'Q.[#\MVDM?1_@T;
MAFE#[1U"R-'?@HFZZVR?D1?6W]&UD[J[UT-M$+Y$!>U+A>T+AI>VX<26(;X
MDR&7BJ8/PD1BI=&53]J-04Q_$=TEOH.^WG ,L$3'^,7FA(H\EN=OP^L,2[+0
M/=[O#TZO:&WL*M;5IPU5XILVFUA/AIS&HOS,IXHIT E'2#1NR&A1B^<J*GB5
MYW6<)@P:3ZKY^$K6ERK_+"!';EK46)]"=XHPEA@GEB9/Z!,[*L:0Y4C2SC;C
M32A+@^Z38?)$BPIRC-H$.AFV%>0 K684G6JX08Y#SHXJCC6XZ$C2$R)()C$V
M%--'0;#>O7X+_!RC24/,9]A@/&+)OO?3M+HN$],1IPI$$1BWWP[(Q9M^\?=X
MR'KSC/\UV6"8<D((8U,:/V#,.74R#*)XEZ;%82/G%-B!@R8BS7/JQ"E)0!"$
M"#5_Q%YDX0E^Y/$:<6M;WEJ_HGY1W502=<DXR_T% ) ,&X?*_EZ]EZ965NV(
M9<M]%0!85DFL7^P @1WP_<40N!@"%T-@L"%P4=TNJAL<)-MWR75>PN7>=%,\
M?GM)E[8K75KR* S[F?5V+A!OF(F-DH>OBSTDW-=K^&/M>S1QV2_-@GXIDY-<
M1]Y0=V,_[SU+2B01J:A$A-FRPR&*TY+G^#G&0Y<PK1Y*S --HF 8D_Z_%8=)
M\0^:*8[ER08E";U)GZ--^N'$Z :#'D0'PG!R>@];0'M6/"4220(I5(1'4@+-
MSGUG#S5 WBN>#+J:6P9%6;I;[5&,Y0F;PNQ!)N3VKSRY_:N]9MAY9>;*^PN*
M-+:R %F@+($&_HQ>2-">@FV@\'PFNDM5_RK39;!J!AHKE];_TZ36U4JMI4&D
MP<*0Z,J089U$&+(O2LAHT"8'!QHLEN)D=$(DUR*R-&U[L#RXFD@YFJ/SF2JL
M/-O-TD3IX0KPK_8%-NK8!:VO2.CW8(8QRK*/QD9[ J?C+1-.,?=&=)4.P=A?
M<G5L_$T4TAB\C#& &?LKJGD0TSVO/D^SXXZDYF-=R'V(MOB/P.7[%SDCC:&8
ML/5ZDW=VOG-<6FCP0&1$+,2P=)IF!+_N#W]D3OZ]JL,H'\NBX<90?4>D,M9U
MWDDM6NJ$6Q\?KE62H#3)>PH'3I+T.Z5V,#]T%6/@XMVA($ T(PMKN=AL2(_"
M9^T%$V9U(S^1XC:N_[CYZZS;^N)\\_?9GKNQ]N_F!$I$"BQI$SP4DF9Z5\>O
M3DJK!.M_/@H2]@<L  3(8G]B@2F8L0PPS'>]NL?WSS[T-UC;)E?^Y\R)'2Q3
MV&=9<9)!8+#VC2J_X4/DRIKAB69  T/(9.(YRP'%_(FI-D:Z]*<D;?H0A=W'
MBKOF@W".,5 ZNQ%2A3W68'.N_9Y4343N[T)1U1\'RC+CLPQO]/QJ'2<CJ?X-
MHG5P=:PU>P&6AZP $<SIC"#S@I9E+XMT8-YP4 !H\!.8IPQ#-M5O!:\W_XJ(
MKDM,TQ@E:5(VDU$7="J+&0/^,PI1[ 2KT%MY>WRF$OH\S3LB:?QA(E:<U>;J
MSNAT-N@0D72!AX=K0=8F8YBYZ[UHY$$#6,3%NO,/[ Q$E1G&P'ATCK0KRTM4
M\&W)["CY'$?<;JK2:<8 >D'N+HR":'N\<A+&12*BD-I<S<Q_F[AQ]%$\^W+C
M)V]9G.2OFQ2QT0+'N>!AG8N!*Y@C3>QXB-S?$BITAQDTI+!2?I\D&?)NLCBO
M7_(C[WGGD.*>1GB%:U2ISM<=N7#\F+[&1KQKE7F1[V1%7#V)CR]K*H7NHIAQ
MOS&#'"<O:EP=:/2(:^T7LUR8Y"WYRL9,/GGIPB5=F61JP<A%;4 &KZ_(H"5T
M%P,T5"\2KZ:OBM%'">^"Z(/9%UHV!1(IZIYI]Q[>L[_QG>H"*E5+K)TU. K_
MENV;MY7,8-?]-6/H*W<H,!Q_0?YVAXF]>L>LN46O"=IDP8._X8713UI2,Z?+
M3MFCX^/-_:\?=B74T-D0_095S?!J'\6I_Z?3:HLQU'\@7 W2\6]<EX7R=ATE
MO6[W(Q: !"3OKL@]N)4E7:@6H4?^0Y#ZHO,+P-"4A^32%CBR)U_&K 3" Z7@
M;3)/G\;Y(@=KO2EOC%N,XO1(>2WOC*!R<(>N!@G\Y#&.[D@Z8)'.JPYJ;R9(
ML+ZB- _T/?#](.KSX7AXBC1V?$WF=Z.JBZ<WSYS>1[[?.CHJTE[U.M&U.GCT
M=*3+B>CHKF9MP:M*9G&SG&EX J_E-5_*";Q5P0<OD]9R1*B&SRH\"!->+4?&
MR!AP\R2)DDLMQ0XG];0LD.FD?X(&4NG1H>&)HDT&$*8N6H(<T;M#DV%G,4\/
M*22OMB6&.#D4-#:4#I1"QF@;(<)T1DOP(3I#.A%BR;%18A2EK,\F9CBYE: Q
M(1<@PHS1]@,_O?Q,T* K,8$D@[,)OX(6;R\^F*FAI=+5TL?LA?&$'-,F'PS6
MVRW!F.@.F1=E2[IE6"8O5U^5FL>6X$.HTFM$B!V,HMPL9FQEN^R6LKF?UE@G
MX]B$9LO1I%2=U<238NZSY1UWAGM@F2G6EF-!@\=1F,4-&3VS"F&):0D93Q.(
M8GG*O*5MK#2>*\4L?,B(FO6$"9U:D+&D\7R-JH:PM(N:SJ/6JZJ C)-93E7'
M^P,9'Q/<3P.J5B#WXIM5_@X)S$%&FFYQK*&0"/)K[[/RV""G(V2L3>C>&%N@
M-06Z?K21R?CN2,@H,LM1RL^L#D/./^ A1ZV ;@ID_!,>,B8OPIL"CS_!Q>-I
MU7B3.)$ .O0'5_9-@AC [K71-8&3( J@GV1,]> DN %L P^X_>5%AY,@#Z#%
M=U(IXB1( FRQ-!7MB:"W0+L>7 TY":( :MJ#ZB8G08H%&K="U>4DJ &L1"M4
M:TX2#@*H*6NO]IP$<8 UZ=%UH,MXMN8YV^^=^(COI"3QMR$Y5NM-Y=!^B4K3
MGGBRJ6'?,N@O[]M<WK=9^/LV-K;=/+/G5A;29512EF*DL;@>IEM2%V^=CG 2
M3L _$)WLW0F(1BLA]D0?O3P)5I>['3*L&I?/D7;84/9$@<+<Z;O?C6<,$B8.
MT]*+["+,'R1&@P<3SU:,E=_\-VQ]LHAI;"]GTZL7$A. X8!E7 5E)X_'P,%
MY^+YT&S9,^&-P/\V8$9='ZB-'FX?D).@)Q(R76]>DWSJU,PI_O@B&/(,.^5^
MCB+OPZ\[7G5??2A_7@1]6_)UG>ZXM]?$'P4L8E:N&V?(*ZKBR,U#MUP T1@_
MM;A1WPA@;+9EYHS8XW]X20>YY97-7=9J+4?GV<,B4-TW?*;Z"N!SG!<?70>.
MOY_ZY#8_!0,CC1TI<LC47[MT$.6&2"POZU<.D<Q?OVY7Q\S9Z]<O[:PNK9Y@
M8.S2A@9&:JC6$-'R6DD ZHQM66L6M8 59$2=5WDIP$PXPX%$RQMW6-.< F"1
MCLGHY9GUNY@I5GE.;1]FC&9>&AW +38&7(!4!S3/I'1_KD#IF13_FXRHGDE?
M@#G#K.?2/<!0E/7<>A!HCZR>2V^":4.RY]+%8/(PKFT%?D_XC]_J*K^JB.\+
MO@CPWVG%[,KS_!R&^W!#*HG)7TQ7\54[;1"BV+2W)O3$LA?#?N4D?O(:1F\)
MBJE9?Q\>LI20.R0MO!PFIW1+3*;XE+F2&WW0B*H*M7_&7#*0$SBABYYW"'':
MY'?S>O@3C %!5>:O4=[6KZ62"*L0I-.,IVB!KP6M&G;[[G,49#3N(*QO$D\P
M+S>NCM5__H^/[8;8W1T?L#X;B*KTU":;!ZYY[_5W*BY]';3&^8!:O;T#2H*+
MJF1YPT$!,/(*,D^-HA'+713+>E_=8>T<JP'A=D7:M+#ROO6L:?XL4JTGH8+P
M!^&%+)IA'HR&.+B+T1\9:>T]6)!T9X("*ZDT5S4RB::"TIUL:AI0*Q,LME%3
M0[@SS8,UQ2DZ6>QSM-O".=_TAA3^>9F),7CZI>% E;_%O.)HTDC1=2GOV%7Q
M1>W@X7#024O:WSR'LY-F/^_<%UB!O_+^G24IH]9ZP,0)=UO$%_X5D>3UO(VH
M>)?]":#DX"]^NNMYB9*VFZCM4ZH4OKR+\7WHQB2V=8/R_QT@2?5_>RFH+3O=
M,9I[S/%%8VC\$H7H^,6)?T?I719ZR2J]=N+XB'=+0>6@0C;+.JY(.$02(6&:
M;UE;SS9E%*.5PJS=Z6][>8;4H])$G]Q[;CLZ!I=72-S:H/&A5A$VR-_-/&QJ
M'E9+4"5ZJGTF7-GQBKMB :;$)]U*FA$(*TLP(>(>/:BPA#D4BD-FT@E.],,O
M!<M#PF!,R<7RW2\0.1Q7I%28]QSFH'%S*9X?5V<Y55:1_:7B0Y5-64A#=N!Z
MY]02["CJEYK1,ZW6,&<BMI)!.SQF8SM:+GT#YM4J3PM.048RJ+M022(NKR(<
M2B^K.7L%3'QPAT0Z(:,2ZO$4.L0L;R@P.V\RXMJ040B*)_EN-LL;,,P>1)LV
M,<'RO@V64J.=RV!YSX>Y:"!-A+"\A01T7I9D8-A6C"JI0ZV>G;S>.=C"3.[#
M:AC^-W$, \"[DY>*5?.(.Y.*55MJ(^W-P;Y40RZW&M+ZW,=+\1J4LAM88%V*
MUR[%:]!+<:#5.#RC-,W3OZ5TT?_!I2#Q,<-WO9-PR[<G^]RE,.!2&+"DA(%+
M"CQ$GCD+-R%\[%\R>=60<\GDO63R7C)Y+YF\\',Q9\OG6F BYI1V,&02@!)T
MYY"F:2E#-WP2D D E9TUI#5"3#PH7S^IWXVKD@W*GTSG$93[Z!V6CE.M/\Z8
M.['&9KDI42">-QI4R.$23Y^$J26\#(L'Y@L[+2@^4Y*R?%;A)B/74IX,*Z$^
M<XJU+GZN'&<_8-^1G* MY8N;71D12EPP[9ML%Y<;F'?4F>J1,<_9Q3<T,Q8&
M"0/V!6JOZ=5]"?DK2NN#P?C1M!TF>,199IHI305@K0GVJ6; 21<PE^$R[@EN
M=4(R5S'7,SI+TFB/XB<4Y"'AG7\0/_TCF@&0:J\)VF18<&ZXV;<J4P$"EEP=
M:U82I0<.6$%[$_C\)GJ.-NF'$Z.J-^11U/E=,@<B*3['43("__DTW>V^G90^
MSA>2SZ$@0&Z:.4'YS#H?\4KS(")_Y;K9/L/""'FK?12G_I]4+@TG!V\A@R_B
M4)((Q7%[#$3Z")J BR<9 ^8E=CQ$;F<QZGO#K'4Y#5%9V5XHN48(V2)7B6:.
MTPM;+9!$NM9RT2/D(#7%#3)R1GAS5,TG-40Q%$'(^%),EQJN]RIBBWU:+7<0
MG2"=%#7UY2)HI'PJE7[(22(S<(Z:N;%<)(WE'J[5 KEOU3QZ4L?L62Y"QO+.
M9*V(YFS.=3J?],VTA08Y[K*T/Z0I-2XACTO(8QK?6H/);K\=L.*.GA YCUA<
M$) 2UPE^10ZW8X"&E2U!RU<L%5X^4/".OD1ANAO![BJ+6H(,0KB7CT@+#LJU
M; (=?WEXN$F\FD7@WT69'H%0+:8['9:["_)AMZ.2KS8IBCEPG;P<1++J=-A?
M_-_+]W^/-H&5E8N+\VF4!G+QN@S152Y^AF'JS7(=$)KQE>L-MK?O'HBNTQ4M
MVWMM&_7[P?%Q/>$_?JL=733XC;Q')RYZJSLNC86O/,_/P;@/-U&\!^'7XFQ6
MYM.23@/@S^+1X>K8^D7)M35D+6.@<S8IR)P4S8 &AC ;63QG.:!4C_89!(F^
M0\/GJ.)GW?6>36$LJ/=D#(-&?:P09&&:K#>-?QMX/EDK6.N:4+V"V&Z)05(>
MM(="*6M(0<8W\2010);@0_1 JDZ$V/&0^HATO!&JD +2+,C$DQLQ8Z1/?0<N
M$WA>W2GK#K;<<3F._ /N==N,V:8=FV!%P$UID2U0X[6QP^LH25>AA_\-Q>](
M;L J3 5AQ#:)0/9(>8_L6#$K0[Z"N<XRTI>[N\UE^!.T%_;1E\(+'V?U3/AU
M%L=8^66\%MZW188N8=!.X9X%H>] /,M<;1->N\/V0J;BC[<?!//^ O[;J\HG
MW"P[W>X/071$Z!DK?3'9F[!BCC<:QN%NB_^O&=G:>O,8Y6U'DMO W_LAU6UH
M3XWB_6$5 3!R9<U2^X&\(_N"8OHM_%V^<.:,A$&FZYT3;P4N-L90&!N_#TFO
MS9P'GE-,;N(I(BU,L,*)UO%UM#_$:$=LUG>4_^,M45P3$@"Z#;-]\72E"N"Z
M/@4#<<7%6>@&*O!W9ECL_5/7X7D>0*F*;+F9+M>3&V5N _56T*A1=(DJJ:^M
MN@J^?F4)/L0N47T(L<,EJMA_3Z**MKK-"8X<:$S(I8G4N&CB@:O]6HZ$L=>.
M%G4:,NY&11<4?51<1+*$E.6.9:53)C1:+$> EA-664*0D3'7D>'?7Y:G06MA
M%6VVI^59TEJ0V;5'[8UB/:>1^_L3.A1OGCS&T39V]B##6;0@?+VA.^Z1JMNC
MDCD60,"*[NCJ2/>G%J#JS] +1A*G#1#PW^KMX[_\]HRO&-1GD+Z+6C(8P*:9
M,0+I<%LW?G)L@Y=JR)08@IQ#T7AS)[*]JU:O;(I5GF11F&BP;2%]UNE(]UAV
M=%H1RW2+R%6'=TFWR N3J4X'2;7BS=K!1,OG6>L@%MZ*;(\PXPZ";'*+O5=J
M=Q2U)J7RU1(LL)R;^M!@B4N3K^FKWJ-UXI[P1K,4"\/E@\*-"!D7(]P,7&5<
M?$X6X8!3Y@MUI<)R-XN6DU)H(?8Z!+ZB-'?_/$1)4M*V/C*K,/4]/\A2_QWE
M4F&=I4GJA![^PNTW-\@\4K9Z[01NEC<Y7F]NR'CD,5<V[51HP4.>0J71WQ*0
M.\P@Q#.6I04HMTX<8D"K[<O\$-J6!^"Z.!$6-6^'EH\80]:)N[\ZLA<0) 1.
M^45@:)2^N2.=MC2 S*>O5O%O<B6N#]RD0OEX8+11/D%Y6<LTI[-86[,#[S5\
M1PF^CVE$PR<]."@U7K&2(4C75Y@UT3XQ-F@,@L3V!FQ4-,U:;X]N=87M(-)S
MTT,V%M4RHF:XSIL$D-\2EJ!4E'T'#*?6>[N&JAC,[+7^[0T9&R,\/3IM%SE[
M:>)FR#08S9%Z[BI-2IOE/KPA9UY9];/<BS<:)T(UTS9_7J?GVNT?&=[\?4CR
M:S%>'@,G3#IN\%S\KUS\.QYJVBV72T?B7"7G&,OX/)LOCIUP2W7KJV,]Y-$Y
MDG]:?3BQ)W/(:5@8@"M."D7" T,QY^C$]<VA:"QY<_9O.K-_0?YVEU:ACMMO
M6.?P20S(=Q$^7@$6%F2B;CX;OY&E(]TLIA>!7L(N=W/Q;?-C2T!>7L R/=Z*
M[UB+LCIYN%9 DM4;UC@=E^<HG?:;UJ+R,QZ8)O=A'EONB"?ZXXV3HCO'CX79
M;S/O BZZN6J+"J1:+B.-.X"+YD$P%J]HSL"Y^9>L15M)_0J>ER@E!1K8D@\3
MWYU2 BA]&BYB98>N!YZ)DS]L$V93L.^3)&-E"#8\"14\7$US^$)P.4Q"VW]1
M#],J],I7#UXB\D\-I6^UW<9HBZ_16<[S^/W )8'L?&%39(-\\HZFT6,^=!MP
M$3X<T(FXF?4ELVA[DP/S-OIH=M@E?S&+%K.&U-S)G("4RW\OPC:,#5K+V\41
M);Y. QXKU:\O ;V3.EWZW[$698-/Y1R,>N*F%DR,2=E:^?/6IL'I"P]R*B1/
MC:]9GKIA+HS6HL=<<:4+M00!HHDH4DK ,\>]4K!$)PD&AQ3.E4#BJV*B(V=Y
M0IHE]X;.,-"%8C/='<RHT9EC?_;;0RT&=:Y4F>O*4):-EN?R+N0Z&1A>O!!-
M]489$8H\<^3.?F&<$/D\5U)->HM(&,#RYJX+N3 &AZHO9)O)"&$&M<\<^^/N
M%!@1Z$EH]W=[: ?#4:\<3K]0:R8YQXC 3X'['ZW$O<&3<FJ8_T+$F0Z0>@K
M DN+03X?H,\>NY04GU-),>%HTCY T(2O-<3X1H4MY3J#;-JL^6YWS]E;@O[(
M,&/>ON,_R!M6POWSQT,!0=BLCSW67*,^*@SP!T3M,%MCX"80<H5=#4#H*9V1
M23YU0=RX3YD74>8;<G*Z.;Y\1"^[*$NP\HO11M[+#%.$PM;W'\L^ZQBI_ :/
M(U>"(G(E$HPW&M+VQUUZY@]']>Y=;K20<Q^%Y*2+Z"&<8^Z<MW<CI A[K+&M
MXXWLHY >4Z%HZH^SKZAKY;HH($\G(H^8_TJ9_UJ_8PQEK!9S3\^O0HJ+YTQW
M(=5W2-^9H70/*2P 5Z7BJ3GE@\UY/L7JW?$#8HG?13%-Q=/M#9%]3C/Y&^W^
MZ%88O,=CU^'S=>_]^?53CK_&)J(P2\0,JS+-/C;]XGSS]]F^4O^P^N'&/M5D
MG[ \U,VFLL]I)C57JUUO-JC.>6*16W6JYATWKFU21?#%B7]'*4WI*1YX=[9=
MHJC/T_V6)94UZTWCV\73OAZ6.R2UC)R1599&Q(?MKL(P(SYMESR)A.Z)JYVR
M#9\&>C]@W^&L2;?>-&(?N5*7GR3=!U3ED_8ADJ0K8#Y:3=&ZK[6V?:BAMU?D
M^1L_?_.='A_RJQ,T5R)OE6GGM0&?AB2ZL%$;TSHO[3*K7AD2O+>A-PFTY;J:
M8:TO@,:NKIV#C_DJWV]CBW<924<K-\H"\93E]&O=^"+SW>J@M! _'D0MZ]HG
M^DIS$YL>&759K],=BE]V6,=C%4WI%G]#/[]X!,_>H5/[_BQTL9$_"J?7$P$O
MX=H9TW[+7& TH.LBC\U&) ,I3'BX4)R\P*.;IVBU"AG-G5/A9J90I3ZU]EA#
M4!!\M4GQ_IQXB]*5N_/1._V1JT"-6^W2?^8L^\\HO;W&2KMJ(JL;X[<$8M'3
M:,- 7LS+9=( <^N,L/.70*- [:U!5G:3GJHR46J,)8@3OBAH G/+.7T39ER=
MYUN#FC*I69)_$>\"\GGEI$0QT%A1N@(DB6*":[!Y9UJ"!Y%$UX$(2P2T&F.H
MY*VUA"T[.PPT)N2"0YCSU@2?D6%F.>@3-I/0F]:V]-9/FK0A278<9"S"T(@D
M(A$R K6J2"JIBY8C U@C'6E:Y-+[%ITH D=D7T+&* QQV/&!0$;8Z>)/*?W5
M<A0 $WK2)%O(/9!@'%&N40L9=;-SZK"DYRE0]S>K4:>6?7VN?93X>-.<"7ZN
M?7:FN7V4LLBG0/D_SA;E[7SS*7#[S[/%[:"$]2E0_Y.MJ->:^3Z)6\1:G[#&
M)/M)$&NMP^GTC/Y)\&FM+:NQCF 2Q%IK>LU?C3 )_JVUW^ 5 TQ#(&L-Q8E+
M%29!MO5&HVIQPR38.U_[[\3JB4FH8:W%>'+5A6T]@L7M@6LW^VOX3MF(E0Y!
MT9FL7#P-KW#I'LQ?^-(]&&[WX$O3TE%,;U734CBMS@!76WZ-"EDO;X WR_<7
MB.)+L?^L.N_L".Y\?H$(+I[7,HCC_@X6B.9*%L+K5S%@:PLDS*6;"'@2M84P
M/!(-W=\"2=1XI!$>?09M;H'$L;KKRJ4[R:4[R:5; ]C2$H/5=<OJ-S!#.0DD
MM@,66NNYRBX%?(M+4[$V_6I^+]NE/F96]#-\<)=R$3/RWU"&EO4Y0W <8)>J
M%)-WAR'Z6)NG!,S[=:G0L#"G#TX2FL)#]0TCFC@*>-FE3\@EW..1Z@V\MY".
M"I,H\#V:F5KVHDG6F_6!M$4BR#2=L5854:/XW7<1AVOR[%K\7^L-@7(;^G_2
MO@J8_J3^+.EQ(N_]6$U? 9#+I@<DM;PVG=^Z])^? C@L,*(]JH[X0T$)03J?
M: 8T,(19>N(Y!M^/35(LL)T )9+W8[OCS D7%.#EMJO0RQLRX/\N&%L(@72:
MR91'A!6A'=[:#7I'070@'*("D\I,8V!]1B&^O@.\MY6WQQH*UI0<HBRH *8V
MU]J@XD3J!#O"J/4*MCQZ,0/B3=98&0R<3:#H-;$JU!P@HU(M!*Z@&"E@8R&1
M;27UJMVBN*?$6![E&XP"N5)D>>!M,$:4M"K+PV&#D:*HD]GFG:H=4W=^Z(0N
M.0F-E(V5Y_GY]N]#VN.2(LFP2^D&O:6U^U#F&N*--J;=MS<D<M"P1AK;-L'<
M>G,=(\P1=X[K!]2-67:<(R[S[SE@J,PT9\:WMB7PIS &@J+% Y$(L="3(IVF
M^86_U_WAC\S)O[?:QHC*%*;U*AT.A#^$Z&4.M77CU<,E!IT[[U'PCB^D]O8D
M;AW1'%#G52!JN,-! 5"TO+R*XCCZ("AW#OB7]#@ *.X2F@71 TI3TBP___IS
M]K81,9/2%%"DP$JH'X^ZA[LS-2.^^[%<;?WBI!E1DO,^?7W<*\P"A?[K+(Y)
MP/N$D\!= @2@"H"8C"GA@XJ25!S@ZX[2+6$:J.BDE)1??N)PN^I4HP:+.DRJ
MLZP-04C,SZ;3@&GJ6>YC' "^DLD(&1W*WGR!3=]RMS(T0,CP*["#JBE:-2 3
M&H6@D:$4C^ K^7Q&L"+ZH/9FYGCP+7DI4WXB1(9WV\TNM&]!8T'I*,BL7ME5
MT18CEL>E3KPV^<8V9+SHOC_Y' 49"QIDAIH7P_) Y8E'I.<$L3Q$J8 .91^+
MY2]4G<@9?/^,Y26%(_%B?;W> +A[WB'+2^%4I8*R0\KRTK.!WA@-J)@T>:/G
MGZ-X0,C;?T<E>^)CU>@VQ,#F5]V#GZ3F,C$Z632K-Y(5X_+<Q;S1QAR;M/#L
M:Q1&>;54N,UW*'8D2R8-9137"=PL<.8H0JLPSRP?NW("\AS-\PZA-'D-G<PC
MU?<,UFKLF"D#&&<\:1YRO,4?JA.>9/L\J>@3_MJ>9T<Z;^0>]U&R"O->.KLH
MP((FR8OIV-==-:=I_7[0XT]5>ZFH,PEGH;&P(%NY+J9ZFCPZ1V(F52,M 5*-
M?(_X@",,6$[MHO+3$@A728)/D(""UTY"<BO)_Q ,O#L!3;5+KYTX/N*#;!>X
MK9,F/(BVL6I.2.89;)/8$GC&R%'RG)F?YKF@(;DOR(V'0K<I5[^W!V[!J22J
M8U)JS%W20@=1G9C%VW1M&0,=/*Y(I:9.>2,^(1=A:8HOQ8)5B79)I]I&3HE,
M+6'[Q4]WUUF28O4S+J<<L6KJ6@8N7] ^QD3-3H^D34**J4IXFU8C?$7V@#=&
M[K)&U1Y96\ 5*4$B'NZ>5^@@J]&T+J9X='S2Q2-_'[0AE:T!6"*@;@KM/3>-
M7YQOC?'-DPL=3+Y@6I?6_P-Y3Y>^HKC>O":(SK &/F6+,\Z0UQ9CU W"LK)_
M  ZSVEE](C5.(?)NG3C$5$XP#K(]V2?R,'/[KI]: [#4'L7&]@$+I/+QOX*V
M;!O'#F!94'Z.(N_#)TE]EH"B>*G4C$G)1HK&8[0CGN)WE,O?AR@A4G>]P8*X
M&;T##;WDAFG+7Y'R"QU0/L?>$;<QANV=7*2I$VZ)[S\?WKQ$[06P(6<8A/O[
M,+CFRHI7T^5[F?*2:1  DN\=Q#8[-QE_M^5 <QW).*YZYL8Y@\TUBU+E;4C<
MS(P;,'?-&FF.45@J6I<_6F/,E96J!2^8(*C--4P%(?I-MIL3..+9V!;,,%I5
MUO>R<R0Y8ZA1_+=]YURDMX9IKC,;X.MN[6_@9(-H5G1M<["O-MO@_23R9W,N
M*L$4F'02GVNEJ>8N 04G+?N"D$\T6,$I\<<R(9+-,I>W)7:^,H$1SS%I(JCX
M5GD6@\)<@_T[Y"Y4)EP*$TT:&')?*<_@D,XTUW&V<HXR]U[];/*<#'-S\D[,
MH%6 2#AU!4@^SQA(,F\F$Q[))+.9PWW/)9LFS+']/.%.)C#81&'V.Q.@,H8_
MQ_@48\5YXS,#7D_H'849NL-S6,KH[3<WP+"$6T(T_']>,VX"/<FOEF(E>'Z8
M85AJ2EVA312C2JE#R>TWC (,GA\Z\9%63Q ^)8B):&O4LDA"&(>IOVL-JJJ]
M%W<RNQLXMSVL-7#F37X+IF?GXI !Y)*GT8F\#W7R' 6>-3#BVZ#)@7T8)ST7
MMB!)5NK"*IQK#6RNT(Q!0H><*:88.0+->\,2T"1W7>?P]U,F/X&$:N9K3' R
M+$DR5;K,A)V]K0&5>Y]1)_?]'IO9,8%KO2E]ITVWJ35@*EYIF/<+ EZA$#4E
M%_A#/N@^DA5K6D)5Q9N(<9QMH:J2))*TT[<F@U8(+)5'U=.5*^_?V,#,!5,5
MC24F=N)[Q:4V-C=Q)B=A7]/H^@D;(TSVC1YNW7,<T<-7,ORTWJ0:$[.>?YHO
MFO>\]N4SS]?:&&E^VUTYQ-MT-0[@:X2\1#/^!,.O0'9T4>8+D.48PUME>WD$
M^V9., 8$4RGN[+L]QMQ6!S864>HI8J:UMM@'Q+D<%*;"?#B4JPV(YFC.\Y);
ML:T]JLTQK)LP+%6!7M$?O=0^03-K\3++BZW92V9I9O]A1E/_* R:#S04JQZ%
M;:4QD$L/5#"6D6313=-HN6+;-[PE7OB!0(JR3^ZPR>1OPSPGR#V^Q$Z88,N3
M@!)Z]&\%8!5K]XK[!CK!9LN@EJ&HGTS-G7'10!7OK0FXC'_?Z?\84.$\,$^&
ME+S<!=$'+,F,D4PVAG7%=WP;>E?'UX3D654^@A4FT3NW!#?W\]DEI3&TG>HC
MK-6GL>]BBA352>U_:(S,']O&3!V3W+H;E/]OY03$_[$C[Z:25J*WFPURV8'&
M 2BW!*D<D.[#=XQ).1<Y1WI&7J*5BW$=(VZ] PLA,",@'(S4+^S*SI6+D$>=
MJO=)DI&NG/FK.<%C]A;X[AIS5XR7L9U#%.7,#<)7BNNW R30PWQ@)0WS6%J"
MU'&2AAJ$A9C!BD@^FOR%S*QRBEOY^/8$6T\4-156.+9QE4'.7-!R)"G*G]4^
MBE/_3_J1]::;AFY-I!JL1!*Q%G2DGJQ!>QDU@YX0+4JI/;C).K[>.?'6HL9:
M^K0>6BVYIK EM]]0[/H)\FS'@R)//&.JHRN'VI)[XEMMZSW0F_V<Q@1/Z%"8
M ^O-0[/\GP7_$N^:JRPA8">8]F\89>1;G)MY%<=$XE)D75/A>Q_BFRH3.+JK
MR_S[L3V6H&!SA$QALY.E\"M;3IT";DZBZ(]V8N$$>WJ]H7(V>24O#&+TX*/B
MOQ,C@"U^B2\BL1U=BDSSV?%#XM1;A\]8]ZLCR=0?TW?&_,-2@3S,0B(>;'PY
M93'6<Q-$(VZ]GKW_M!03ZLKJNT]><,2H>(@<RB,DH8]*E%H[^VF1AR//K^B8
M/_C"E3;4J8WDORZ;/?K(*1H>E)<0L_%!C9X?S@T]G7Y_-28L5?%/002GC4G=
MS8#19_K[9>MN?3P)^R;5:!FHG<P6-!^(BWY$774!D\V]JH H$XC& */]&^=W
M S(:0<ZX"6AL+PA8J+$]:P%S;#\@@LL^%NH+0*.DP(I0HR1K 9,"3#7RS)-O
MBO,-=L)K!I.94+2&:,YK'1J&;&UPS JFI<+8T*)(4(Q<TUSO,DD D0FK9)))
M&:$2L^+)!X6Y(,0?)P0E%7OL>>9J[#C1)"8<G,$&BW2XT2#F_OGCC8$P6SR'
MB9"YO@[BQ*IP"'\\G-:\2B52LED@*'):L$59PQRUO+GR*\7P"A-\Q<FFE3YA
MM$1H @HFFF1I8>"#QZBB2;JK14=%)OK&Q:AU3%:5C@HY, DV<C% P/<""HIP
M=N?! FE0:$ =XB'+ D*() :@"+]X%: 55S=^X@91DL6(>@D3^MA"\DP",?%Q
MO<'GT=^&>:%O5?W[$MU[1!W8^,C+#RPF=(.T-Z33?)"8K,6B<I>AJ&.!&VU#
M_T^LXQ4@.)7U7[A)O=L$K_]Q'3C^O@T7'I;MD=?HSB!),E/Y&O\3EI2A:(=[
M6M06<9!&Y ,\IF=DYE,^Q5R_\7UK"F(FY&CM^"W>N,A'UNIDTM4G[2E'LDR>
MR LKH5=;6(;PVFEO3Q''#"CN/<0-/>'),K9K"5IJU5B3[F[3?588D64?Q=*"
M++#/REC[$7J*HYV,WK+G<E]-M]W]T"3U4WQQTZN_38_=A%^#%#33P8;RX-A)
M7UD$NE@VY^388WP4QIF4VXG:#J3T4X Q,L"RFQ9?ZAM9Q&$=FF<YS[<7@=J6
MZ38Y,IM?NSP!.LL]Q["1IK_G^A\%+-4'V#?32G7UC2R)-456S5R<*M@#^" A
MX[G89W>'O(SDS3!^!! *+"FI]E)NTZH6S*!/LH /'$T">N.UYV8V]>B^59=W
MDG4"4S#F4'#R:1 !XK+;4!!Y"]DM<^^RM#^D"=]2)7 3QD*)>4)[QR?IJA@M
M&'M.\"MRXC,5TGWL?,6\^?*!@G?T!5OM.WL"PE,CAG#)RT=D3;QV%GQ@P8ZL
M":_.@9&[*(NMB:VJ(R1_UX,[G"# [=R8JTV*XAY*!@9!C>L5B]+ZU"_#P5J3
MZLJ6H*5_"VK 2&]12Y!1W7P:<%"N91/H^26G"WBZFD7@Y^);$_1T,=W/59UR
M+?6]IZ<L!]Y(+,R\]>8:Q?B_0N;;*5=.0$K[GG<(VXA%?4IM2LJ+DH!X]"@U
MY;LMW*TL]:\_^6MC/'"#\73P694J= X#"U"MP_%8*(5!WLJB,34(H@]R/D@G
M#%J_G)<7UL\GL4S$R3.?!L/8E'GJD\WU\1">1>;U))QB\"4VA5/%A$=EIOZ[
M=0S_,V_5$0L!O4_I^V-:+]6BW)439LUO50!7:EU@W=QNNRJ7)TJ+.<_1)OUP
M8D1#GRZ%UI8;=23TG6GW(>89P@K@[\X3X2VCUN0E\QZ-H?L*1\),1[7G=B&'
M[A0<<[:?=]@B>D'Q_@8=HL1OE)%!+WHXA<Z=4>,:U,_51D,9S%XO#?E,W7WZ
MY#=%7\&03S*-_(;@%V&Z'F:\+5);<C,WS1QJ]LU=COAE;E\P03-3,T1DGXG[
M@\RB4D5 B.4!)+5=J\9.P7Z(PFV*R05.06\0Y6L4NHI*FC4:N!0\>IH:%1RU
MU6F-UJU,PL; +YC#48#9%D59:]:XG(79)4T?4+ZP:8R%<5&JW)"Z;Q4.B_=O
M%O9 "#3G\JR, 7@3@=X^^IU&RKGY@"XF?O<O1E%#)Q9#@=T?@NB(REZ;UOF.
M1L-?-T<C;<2JAF&VQ&%TT9^\XH&2A )TA_J^0^A9>:/A)SU'R=C;;Z2K]8OS
MK>@8:)MC[50&J)KN]FD/W;,V_NQWQG0!!YE4-PC:?N1.8:YIT+AWD0@FWB1S
MJICD8F&K8>))IBG#O25$E.%-,O=^@$SD,Z&1S3)-&Y8 %Y&%,=ZLV<(2Q'Q;
MA3%:V4 I?B5_O.%CEO_S__D.[^AGYW#PPTU$_JGXAS",4KH"_3?R3RB@;PK\
MA^\51N#K_O!'YN2Q]M4V1O3G+VC_1BJP0V>/\28<DJ/62^-/Y+^2G[V(I/C>
MXPOO!?_]+_^19&_X,VE&=O$YCK+#?_^%H-K_N;@3Z7\?Z MB+_E265R4:84^
MMN3>R#V;QJ3*UL$KD5R'XN_?\8&:K+U(CI#)EL^1F>-D'X781(N/)Z#2#Y/4
M(:S(Q^3&"1)4SGW+34M, _16OEG 1G#>X+_5#_X))2A^1QYY"*EX"&"5I1'1
M@-Q5&&9.4/8]O@V]&VS)EMC4LU83=<1.GI@#<[P),*1LB*^*-4MTC)C8A)V\
MT1=N#9^_KQD1#IBD=*/WX2\[W]W=XF.1'G,M@6AY.;A*0YL ^F&*MB@V3=_Z
MI:3ZU8=VRY<</ODXS8=>';K!I[X0<F1U\M['5_1QA3^!V0V?WDX_@O8-,F(B
MR'N%1<#'XG$,<E(;?6.P@ HRCZ@JO6< <ISH60L,\[B-9WNFOY0'=+C2?V4/
M^+@U%WII@M+KMV1#TDNJ?"$R?^2U1*?R\-:U7#"7:=']C+_JQC[UAGQQR'T2
M4@TC])ZSPR&*TV>L?/@N2MI";/ TD"*LH6615QF^./'O**5O,V"2D:>:G&TE
MHM3&=L$\Y+^9IG*#1 5],*6:]GR9%G2#+YX@HO*737@=*X'D!4;^2:F2]WZP
M1Y*QPY^%W&+_: UPN1%^Y[C4M79;!"*_.&D6X[\WK2J5D=!LIIPZ!<_=^,E;
M%B?Y$XC%\Z3%@]3Y4S-MFJK/LDAE&E# 4QF/JA.LX7F&ZM9Z]_*1)DC^KQ]Z
M F6/.\,B;C"BP])F!P9U:/I]:WBU>NBJY<XB/BSRWE6+">^BN$0H0ZAI6,@B
MSJ[5R?6F\ /\*R*^[_P5M<)@%@_2KX8JLXD(LH'ORQ>@#IQE$:D[KJ KM/7#
M$!N,'3=0D>4D=",IS@6I>BO4,Y1N(NE :Z0C#0P3LZ*X/=K4Y?T*DGZ5?*XK
M4[D/<_=DNM(<,&=:?NF-*P@ND#)N,A2>GU=K&] "6K_*-N#C]E!'*:NH+:<&
M38$IO"),L<1W'Z(M_B-PV_#Q?@4)R@-F;RQ$*9U_H?ENF%'?L1#=DLZF*,;*
MTU/#*Z(\'*A3\P6YNS *"&6>HX!^/.D14#(()!U'.6:7X(/5*:'9&7@370>"
MC]DC_ILV90XS0TEC&:""P3 -T<(S2$)S4>"[F$XO3<<X]^<1N25>^O/N2*#.
MWJA+>;+PQ8#^8Q2:%_0M?0LB]_<JSG'""ETRI_BG*_*3Z3OBI-YWE5(^?@DH
MIU_9L8PI_97$14@%[Z&POQ*B*9!=]V2G;#2X9"S"TF':..!Q%.+_=/,8R=<H
M_163=;/!9,7TIJ?_F/_Y4G)TP_]R\DI@C\U):8C/F,E3;4F-C=6@A>A>/J*7
M790E3N@]$V];BE!(TI?2(]X\T1_>:1I(1R$=-@FDGM:_('L20C@$G%C VLPF
MBO>$#:\PSWF8/?&VB&RGW/J*;X"GY]>.PCUH#D@Z/C=K<SL)/JR?0 +!ZOI7
M%=P47O!:L:^5TXI53U@ C%]RF'9/JJS)Z<Q?-[T+HH^$I=<SAP%U!A2WRJ%,
MOXNC;>SL.SPM' .2N<N,\-46A:[?SQ2O_[W)BD#2PLM-8E'XCN*D= ]>1_$A
M*G1%I73XX?,!(N.5!B^1U[@VJGNBX\I1&@J2797=XDPOLOHTD,#G:;Z^2S77
M,J!5:;S7SL%/G2#7A1OJ;_'R5*$$-\2PAK5:>A8=;/H43/G^_$EN/:4O6&/-
MEY*S""@2:ZK:6K)*J<PD=WJ9TKJ*$4WLQ?^/O*[X';D(0!E<*',D7Z)(AWS$
MQN6Q-NDY/UNDYCV@-*4E9'3D<_:V*;)>N_D%DF$@)6SI$[A!^?_6-4!\5V55
M>S9JKD64%_KD6OYME9& 7=VE7"(U*+[G8XIT)5;S%[UB2$?TX=G98(E)]O+P
M<-VQ4%@_@3R*I:&\#CMY:8P?0 ) -<S/F>^1\Y7GDEYE:>ZW77G1@4A_D?]W
M_'RP7M^&:W+5]$[RZMNXCLU!LT%RA[ @];1RUF44L)9Z<YEJ4.59'+NFG6P<
M2/K?8!&&_]=EZ;Z8T=LP*@X&"6@IKGM ,7X "4#I+&&XWSEN%=%(D"!6;2$*
MDO3[1=0_ +2ZJ)OB$XV1%+G\JSAVPBT=5O;-)V'S%R?>DCZ>.Q]?'LUDDU-6
ML,9F%TH1\BCB *'3' Z2I2OIT@>,^1-(($J3\CX<[><[:0EX[KU')R6!L;QC
M!PH"Y*:9$Y3J4"=^JC06).$?GU\+:=2( 4=AEO2U8J6A(($\*6OCGE0FY?6E
MK5X9FA=MGH M?33XQIE'8Q9Y&4DJ]:?UYM-K4CB9UV^Y4_0^O/V&C0!\<6%@
M>7FIHZ=;9#TT"CAOLKI%2B7QFOK9"IL-WK_(71=N6Y'<4?/AR<SI\I I)ZTW
M)1]-G_C<^^ BE*^>BTMQ,$BI+DQV(=4N_C;,XZ[ND;1KJWOQC9EID4AJ)K[@
M2SM99REA-@_S-KV_UV%N7#R0F@J2(]VS4DY9P7!63=XB-7%W:._\W_\/4$L#
M!!0    ( *Z##5O:D<O>6@@  &8N   /    <W-T:2UE>#,Q7S$N:'1M[5IM
M;]LX$OZ<_@I>BRX2P')LYZ6MG2V035UL@$/32W/ WD=:HB)>*%%+4G[97W_/
M4)*M.$[LO'31'IP/223-#(<SS[R).DE<JCZ^8B>)X!'^LA,GG1(?AW\$!]UV
M]V2_O 3!?D5Q,M+1C%DW4^+7USF/(IE=]]_GTT'*S;7,^KQP^A\RS;5Q/'.#
MOP*916+:[PR"B1C=2!<X,76!E7^)@$?_+:SK=SN=MX-<6^FDSOI&*.[D6 Q>
M>W4B.:X7JT7U!JG,@D3(ZP3,,EO)>[(/SKF$4'%K?WV=<C"&.G,B<_XOKH5Y
MO;S T6J)>4T7@]/O *KGKMIXX'2.7?IG,4^EFO6O9"HL^R(F[%*G/*L)1]HY
MG8+66X(K>8UU:#.T"/'7ZX1::=-_T_$_@TDBG0ALSD/1SXT()H;GY7*3TA0C
MK:+!DFX/J>.?W0B3D0<SG0EOUXF,7-*/I:L-!:V&TT2.I&,E)(@/]LT;%O$[
M(>-EKG_</CY^]W99D8:1NKTUBCU@IQ K"//#&NIL>'EU_OG\[/3J_.(+N_C,
MO@XOSR\^G9^QR^'7B\LK]N\OGX:7[-OPS!,<='H@JBWZE!V]] ;8<Y3Y[N:]
M^GW(OIU>_G;Z9?@MN/CCG\/_L-.S*[)SK]/IK43FR\2JAVP#ADK$3X[6ES;*
M>8M=<I4G[+3-SA0W-RT6"N-D/&,NX:Z_-F"#=^WNX0%2<)G, ]K<^BA^CODH
M[4._'\6"W?;..4OX6# CQE),1 3+2<L^:Y.R;B?X%],Q^Z:+++I*9'8#>2UV
MGH7MP=:TZTS;:^_\QBT,JC.6SMA-IB=*1->B55K8".H36*0A/M..5369\6S&
MBLR90F #W(D4TL@)G*6X,I(K%O,0MPS3*0J3TR7='8),A,):;F9$DO(;@74;
M,BWN15 &2RK*7;0&$832A$4*L@SLT"02AL%H8<)L0;\6_!-A1"6$-I!*J] G
MP2YL(EV"#=I<A%Y!DIM#-1UAFV.P16PT:YIA"Z>U<#IX $Z"Q3*#P\CW"P>U
M@"60X[%I/)=9C-CFU.+A_U 5$60"! UOM  @:=2,84>6X$>P5&J!K\JU=FEI
M*!OYWK%%%(4" 4"EX7F_G/7ZA-PF+%9Z8FO$&7$MK3-HF1FGFZ7>T++5 (ZM
ME;FC[18[:[%SV-ZYNF7H7]Y,>YWNAX&MX%%538I='<<2E]X'YXP;X;T-[\F1
M$N05)@"QD9(V(7(BH]F"<A==1]*&2ML"?+2^T:IT>VYT*"+<MFP77HX$8%.Z
M<C@-$YY="W:*9'%9*%!T#WC0/=H5>YZU>Q255^6EI#8X*^%&\AEEE 8*2U20
M+ALO%-]:*,9"M,]E;(*"*N7JKJ+"0Q-:6P@V(+C+]W8^"0O-X Q?2=8CI45%
M+N2%W9R%JLU(P.O52F7]TH6! "22L;0^/8%*9%X.]8F+Q-9,CN7\"QA5!6P!
MA5:5..FA1)*#+E8K&7'G%1U9&4EN)&U EF76I^N,)!662I^/.NOKI$]FV@HH
MY) \B2GGP&]8H*%%#L:VO!*+$@J.LB W^PC\-Q)$"#>"7T2KT^(6IFM@.EJ&
MZ<;IY@Y:-T]4&X,60!_+B+#(K<XX961N@6-JU@B@W$0U6 !?R4=223>C0KMJ
M60H=CRL/F1+UMT@;S9Y/_--J0WEA<D#6^L8@#+6)O *^[;L6&>J] G+Q1.04
M$D2"EK9$)T)'YLB]6WP^"9_AWLYPS%7A<PTY3\0Q6C$YAMGMBI9J4>DW2)[E
MY>HVR^,1C$A\MFSF1KIP]ZNP27KG<VI!G6J\?E!@H[H']B$F2E- GP$)WT+J
M*9"*D/)*9]UU.DVC5=?DGZR&UB,R'95;'8:%(=\V:MLJL:FV#@_HQ2>$V1"2
M_BQ0&R%[]SZ>&#!%%EHBKW3'["'\+$UC=E;,-=LK]4JXG;<"E+\\K$7D$[LW
M295T9YB8;X2J!NLE^M;SK70_EK? ;0#WZ,E3C7_A%=68;RV2"N6X)NH6^85@
M\XA6X$[/N-"-HW%TVMAY^?4W(#--I7-"/)3#1QH5G@@B"0V]E%V $RG34DK&
M7^I?ZY@2?Q82&_#A4V2AG\'WMN/+4\>74X6."+I)0(D&0AHM0RG@^ZITSL>(
MB> W5 O+#LE70]_;^9=V]>N01R&JZOC+<7Q%&N(1&*V89Z'[T5>UA. !@M"Y
MM<J*;%&.;9'"*;"<WTU5 5:^.=I6V^<,&*<HJK%!V+?@5N%3%8#AWZ%6"&J5
M!4EF8ZW&@JI2QJ^K5\&FRFXBS96>"3R=)+I,:?P6/H&GEZG:[8:G7S$Z*/>3
MQPJ/=]H'O<.W@Q%P)8RW)QFD,_ ,@>(SM(S^F'Q0VN;#AW9G3@Z7*)Y;T;?E
M.%*=@]-ZIEZ,9J$2P?V:O*8"6523E=(/W[??]4C\E-Q(FM0'X+CE#\I==!_O
M4;?=>[\1+_XS=_2LC^@).!-L+Q@A;&_Z_G= -U9#;L56ZDCQ<=#N] [IU+\9
M/?7-,54[-#T5[D$_IZN/D]N=SC$H*WO/[[X[RA$7] :#O8G]SYS3'\[/EWCY
M+P'>O]SAXD;A=UI<(Q^P[D&+]3J]HV8*6PF&E[5^;YWUJTW^OUI_W^XO'=@^
MY\S]<:?ZMUS\4\7L+?:-(/%=$?%,A_SRIGO<&?S=@?=H$_Y$4;4ZHE;C'?]0
M*5[Z1NS.5V:Q$M.@G#'H4S"H6Z39 !-3CAK>IZ?+'Z)5;5:MEJ<)1!:M^4(M
M,4MMA,R4S& ,A\&][!1N/X#(\G:.AJB,T(#':&3Z7$WXS/YPW\YM&Z:?NF':
M)M]M\GW(HE\-)GL:;?W,?)9($;/A5(0%A3^[*%\[?<?/\_[N_>Y^+4]P,!_>
MV>;>MO;0U^+TE?C'5R?[_OOR_P%02P,$%     @ KH,-6YUVER51"   ;2P
M  \   !S<W1I+65X,S%?,BYH=&WM6FUOVS@2_IS^"EZ++A+ <FSGI:V=+>!-
M76R 0]-+LL#N1UH:V;Q0I):D_+*__F9(R58<)W;2]-"]LS_8EC0DY^7A,S.2
MSL8NDQ]?L;,Q\ 1_V9D33L+'P>_14;O9.3L,ARAP6$J<#74R9];-)?S\.N=)
M(M2H^SZ?]3)N1D)U>>'T/T26:^.X<KV_(J$2F'5;O6@*PUOA(@<S%UGQ%T0\
M^7=A7;?=:KWMY=H*)[3J&I#<B0GT7GMU$C&I%JNFZO0RH:(QB-$8!PNU=NS9
M(8Y<S!!+;NW/KS.. V.M'"CG?_$8S.O5!4[6SYA7<BF.]!:@ZKDK#8^<SM%*
M?RWEF9#S[HW(P+(O,&57.N.J$AQJYW2&LMX37(H1KD/&T"(TOEHGUE*;[IN6
M__2F8^$@LCF/H9L;B*:&YV&Y:7#%4,NDMZ+;8^KX:[=@%$50:07>KU.1N'$W
M%:YR%&HUF(W%4#@6($'CT+]YS2/>$G*><MW3YNGIN[>KBM2<U.YL4.P1/\6X
M I@?UE'G@ZN;B\\7Y_V;B\LO[/(S^SJXNKC\=''.K@9?+Z]NV&]?/@VNV/7@
MW L<M3HH5'GT.1:]M 'L6Y3Y[NZ]^77 KOM7O_2_#*ZCR]__.?B#]<]OR,^=
M5FL],E\,AEZ\AD0)Z;,W[$O[Y:+!^I(K=M5DUPZFW+@&B\$XD<Z9&W/7W;AI
MHW?-]O$1TG @](BLV[R3GT)WJ_XCZD?]?A07MIM[%VS,)\ ,3 1,(4'/"<L^
M:Y.Q=BOZ%],IN]:%2F[&0MWB? UVH>)F;^?:3:[M-/=^X18=JA7+YNQ6Z:F$
M9 2-X&$#5"NP1./T2CM6YF7&U9P5RID"T #N(,/9* B<97AD!)<LY3&>,DQG
MF)R<#G+W!!3$8"TW<Q+)^"W@NK4Y+9Y+4!E<4A)_T1HD$ L3%QF**1R.FB1@
M&#HM'C-;T-=R_!0,E).0 9FP$FLE] N;"C=& VT.L5>0YLU1-9V@F1,<EK#A
MO.Z&'9PVPNGH$3@!2X7"@%'LEP%J()90'"^;VG6A4MS;G,H\_!_+(L$Y$02U
M:#000,+(.4.++,&/8"GE$E]E:.W*TJALXNO'!DD4$@405!HC[Y>S7I^8VS%+
MI9[:"G$&1L(Z@V4SXW0RZ(U:-FK L94R][3=86<C=HZ;>S=W'/W3FUFGU?[0
MLR4\RJQ)>U>GJ<!#'X,+Q@WX:&/TQ% "184!0FPHA1V3.(E1?T'<1<>)L+'4
MML!QM+[1,H0]-SJ&!$];MH]13@!A$T(YF,5CKD; ^D@65X5$B?81C]HG^W#@
MA[9/DG 4#@65PBK C>9GQ"@U% 94D"Y;+Y3>62C%A<C.56RB!&7*]55%B8<Z
MM'80K$%PGQ_L?0*+FF$P?";9C)0&);F8%W;[(91MAH!1+U<*^4L7!B= (ID(
MZ^D)I4#Y>:A.7!);G1Q##XPP*A/8$@J-DCCIHD"20UVLEB+ASBLZM"(1W @R
M0(0TZ^E:T4R%I=3G=YWU>=*3F;: "CDD3QJ48R4KXD)RXF TRRNQ3*$X(B3D
M>AV!_X9 @AA&' _)>EK<P70#3(>K,-V:;NZA=7NBVAJT"/2)2 B+W&K%B9&Y
M11Q3L48 Y2:IP(+P%7PHI'!S2K3KEJ6MXW'E(1-0?T>T5NQYXI^5!N6%R1&R
MUA<&<:Q-XA7P9=\(%.9[B<C%*Y#3EB 1+&D#.G'KB!RY=X?/9^$S/M@;3+@L
M/-=0\"!-L103$W2[75-2+3/]%N09#M>761Z/.!")SX9B;J@+][ *V] [7T@#
M5:KIYD:!#:L:V&\Q"*Y ?7HT^0Y2SX%4@I07@G4_Z-2-EE63O[(>6D]@.DJW
M.HX+0[&MY;9UTV;:.KQ -S]Q,AOC3'\6F!MQ[OV'QJ0(4V2A%?%2=^P]P/?2
MU&:K8J'90=!KS.VB%"#^\K"&Q!.[=TE)NG/LF&]!EHWUBGSCV[WT,)9WP*T!
M]^3978V_X954F&\L284XKHZZ);\0;)Y0"MRK&9>Z<2P<G39VD7[]"9PSRX1S
M (]Q^%!CAB>!1*"&?I9]!"=2IB5*QE^J7ZL]!7\6 @WPVZ=0L>_!#W;MRW/;
ME[[$B@AU$P@E:@BIM8P%8.S+U+EH(Z; ;RD7A@K)9T-?V_F;=M7MD"<AJJSX
M0SN^AH9X@@,M+%CH8?25)2&.001AY=8(&=EB.K9%AD%!SWEKR@RP]L[1+MM^
M2X/1QZ2:&MSV#0PK>*I"8/A[J"6"&B$A"371<@*4E10?E;>"3<END.52SP&O
M3L<Z4!J_@T_$T\MD[68MTJ\8/2SWG<>:B+>:1YWCM[TAX@J,]R<YI-7S R+)
MYU@R^D?EO>";#Q^:K84XAD3RW$+7AG:D?!9.ZYEJ,>J% H*[E7@EA6)))19F
M/W[??->AZ6<41M*D>@B.I_S#<I<\-/:DW>R\WVHL_C/W]*P>TQ-PIFA>-,1M
M>]OUWQ&=6 ^Y-:94.\7O@V:K<TQ/_NN[ISHYH6R'14^)>Y1?R%6/E)NMUBE*
MEOY>G'UWDN.^H#L8[$WJ/XN1_@']8HF7?QO@_<L]7=QJ^_6+$?(!:Q\U6*?5
M.:E3V%HPO*SW.YN\7QKYO^K]0WNX^L1V;03^5EOJSO"M(O9= _:-(?KI3?NT
MU?MO[XLGN_!O!/H=X'> _[\"_/E80,H^+^K(R]![/_$]I1_9POVOX38V&K<T
MDWJF_O).=VGUP>/['?]0:?P]WMQJ/7_CO'33LV:/U5]3O?>B:RIA%H5;'/0V
M*L:NR%0O$3;'%J)+5U??A2V[O&I-+Q.!2C:\)#LV*UV,4%(H=(I#I@Z-RMT+
M.&4XG6,_%@@YXBGV45TNIWQN/?N>'=++PA]?G1WZUXS_ U!+ P04    " "N
M@PU;.H:OY_X&   T-   #P   '-S=&DM97@S,E\Q+FAT;>U;;5/;.!#^WE^A
MH],69N*0ET*I33N32\,<-S= (9WI?53L=:S#EGR23$A__>W*=DA"VG)<*6$N
M? B)M5JMGGUV)<OKP\1FZ?MG[# !'N%_=FB%3>']X+/7[33;A[OE3Q38K20.
M1RJ:,F.G*;S;RGD4"3GV#_+K(.-Z+*3/"ZM^$5FNM.72!E\\(2.X]EN!-X'1
MI;">A6OK&?$%/![]51CKMUNM%T&NC+!"25]#RJVX@F#+F1.)JWJP6E4GR(3T
M$A#C!#L+N;+OX2[VG&D(4V[,NZV,8\=020O2NO_X&_36\@![JS7FM5R,/=T,
MT/3<5A/WK,IQEJXMYIE(I_Y09&#8"4S8N<JXK 5'REJ5H:Q#@J=BC./09&@0
MZE^/$ZI4:?]YR_T%DT18\$S.0_!S#=Y$\[P<;E)",5)I%"S9]BUS7-LE:$D>
ME$J"PW4B(IOXL; U4&C5X#H1(V%920GJA_CF#XM(B$.#7EM(^H/SX?'1<;\W
M/#X]86>?SB\^]4Z&;'A:X[.65K.-]QP.[0/VJ7G1[#?9Q:#O/-CN[K4:K'?!
M>A].SX:##QN7HDO;'>S[=+Q:^_)M:Y^='K'A;P-VT3O_M7<RN/!./_\Q^)/U
M^D-JZ;1:G8U3*Z?2&BSBZ7V]^J.G?E9H4^#.@5G%; ),P]^%T) !F0:6Q;BQ
M2)B0[+Q( <.6>^W7VZ,=IF(G?@%AH7'MQM$'UV'"Y1A8+[34W'[;?=U@W#".
MRB*(&FR;>KQ\?MUIM<-@7KR\%@4[C,N(=-)FP.4(4M1/>(YQP/:[]&M(.R2&
M&:6RX)-$J+"3Y1:-Z*L(V/9-OGGYO+W_)B!-.PUVSM,\8;TFZZ=<7S;8F08C
M(IHI#=M/!,0X"YP1;4'8:1R+$(?%<2Y4(:-A(N0EXME@QS)L+DZFK[*<R^EL
M'@VGL9=RQ V3GH4)U[91#7$D))>AX.G\$*2MTM)@P,.$):!A-&78CGPA@&W"
M44?EIQ$8AW(B#+N4:I)"- 9_GL=S&S%$*/-28:P'J7.M(U0^MQ>+A,E3/O7C
M%*X7F5[QM::,D_",Q?D$CM >*3?^B!M(!1'M-OMON+??W-]_\V*MPJ$R::)T
MY(TT\$O_$B!'Z]*@!D5(FIGGL/D&'%OOM]L[M0?F-M*+:M8E\(<WA"MI^S8P
M[&.!$P&=3MDYT"T%PS \4CIC[9;WD7*!XQX21ZB(N:AFOQ<26!<7\TZKLT?L
MQ"D@>RT1LU]R-^0NGO$"MQ:IC;TXY8N;7>YB-)TY_2*LC)B+JKA(T;80S4XI
M(B;")LM9R[B G:60;8ZY2M]<V-N.9LEK/@4%%+&S\*&;F>IS$T8_/XPZ3RN,
MA,3(R$J2U[>Y$:V91+(E,K.8"XHOM,H06QLDAR@Q[(^2N"A@0XYLQ1;J'L\6
M"]0<N;MDM[:@5)&69%?(0#>X65I(FFP5H1_R/N31:;CHG ^(J<]ZQ1C-PEQ0
MYJ@'W.L=W&FK][WYMW_8_&GWTPKF)OR,T9$3'^$.JC)FA $+VEE#ZM";U.IA
MH*G"NM.EH-3<;K6:K1=!)8\>37ENP#>0<V1?=7Y$VG6M^DH83/"IL%._%J^E
M4"R:P>'4=YI['=)^32"0)?6Y$5YRYTLV^EK7[E[S[>M[]NUTF^W[=FWN[=_?
MXH.#._7%;_H6L/59'#%U+N&Z3X\NK ZQ%=A7!XHET>EHK_J=0FS=A2M:P4.>
M5HPN>3X3JU, "E:\J*\T]W+DNTI%-!-V9VY.]H$/]\CX^V:@.X75KMF=3R(K
M';U!]C[(+MZAK0/(['GL_EK=N\/=?D"X_R/ MU:$#7LW>6']D5TZ25F)\LJE
M<EV6Q[NZY&"3.C:8;3#;8+;![!$Q>ZB[+EP3L56^V^IL/9Y+GLZJ_VAW VL!
MY0.GA T7?\X.=),V?K:K[O18=QVSR1,^-]A0]%_!^95"@*>655#NL?RU]*CE
MP3VV?:8%^BI'9]W*)3OKF$PV6Y/' _ 1R7F34UP%4ABJ0EI4\&VNSG(,?J'G
M?X_RE/CG/1>^3<#_T4/Q(57FA N5.3P,7<5 664&<R4_LWH>89DKS@>J6#!,
M*LLB@ PB%HL4/V>E.',5@<3 68U-7V69,*:N7ZATH/X1%5"$2N>*GB-';#3%
MD6+0($-J00DNIS0*L?@KQ7AX!?3R\#=UB-W%.D1U2_1[M8ML>Y( ]M$LXQ$5
MW\5* ^GAL:T&CM#XNOYBAM\.@J6K@@Y:,+"=)C,&"1I#]&;>! O>88P+CD8L
MU)"8 M$O9]]\4HQ=+F-XU4?E(RU>-0R7QC.@17S?&MV%MTUNO:_BBHDBH<N:
M+RH^*#(9+-9F+;[2LK(<"3W_G7==DME^K *S*G%RA4QE\<1B ZHL+^?HYW+/
MYCD*^3R=\*EQ&[3#77KGY_VSPUWWMM _4$L! A0#%     @ KH,-6]KDGO$A
M@ ( 2$PE !$              ( !     '-S=&DM,C R-3 V,S N:'1M4$L!
M A0#%     @ KH,-6U;M"W\'/@$ 3"$3 !$              ( !4( " '-S
M=&DM,C R-3 V,S N>'-D4$L! A0#%     @ KH,-6]J1R]Y:"   9BX   \
M             ( !AKX# '-S=&DM97@S,5\Q+FAT;5!+ 0(4 Q0    ( *Z#
M#5N==I<E40@  &TL   /              "  0W' P!S<W1I+65X,S%?,BYH
M=&U02P$"% ,4    " "N@PU;.H:OY_X&   T-   #P              @ &+
HSP, <W-T:2UE>#,R7S$N:'1M4$L%!@     %  4 -0$  +;6 P    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>ssti-20250630_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:country="http://xbrl.sec.gov/country/2025"
  xmlns:dei="http://xbrl.sec.gov/dei/2025"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2025"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2025"
  xmlns:ssti="http://www.soundthinking.com/20250630"
  xmlns:us-gaap="http://fasb.org/us-gaap/2025"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="ssti-20250630.xsd" xlink:type="simple"/>
    <context id="C_80178e18-784b-4da8-b3cf-13e3cd9a0862">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_8345288f-b24e-4e5d-b67d-4ac2b933db67">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="C_84044923-7b4d-400c-940b-2dbe23977c7f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_8a04306d-3613-41ea-b305-0cc45348992f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_8cb7d674-0eec-453a-ab60-6d6b89523255">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandSeventeenEquityIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-01-01</endDate>
        </period>
    </context>
    <context id="C_8ea297da-cc84-494a-8297-9f69a4846044">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="C_915e6b69-ee02-4a74-8eed-225a9f58ae75">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_91b2ce07-dfb6-4e6c-9d04-b6c524a9e011">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="C_937b7985-9731-45a1-9693-d6991a28d143">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2027-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_96416f51-012b-433d-9156-117993e161be">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerDurationAxis">ssti:RecognitionFromNewBillingsOfDeferredRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_9671648c-3946-46b7-a28b-a179a7ecd81d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="C_9755d019-a7ad-4033-a69e-2ca9947613cc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_976a43f2-4f77-4590-b9ab-2373be7be554">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="C_9ad7f4bb-818b-43b8-9b0c-27ce79dc9486">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <instant>2025-08-09</instant>
        </period>
    </context>
    <context id="C_9c862cea-f98d-4386-bc50-979ceb737fa5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_9d509af7-a06e-4dc0-853a-d56de89ff8c0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_9ea62ede-f893-4a0d-9933-f4ac1f5f184f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_a005af1a-cfe2-47e5-ab4d-96d2aa948dbf">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:NonUsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_a53e737c-dbbe-44b2-a430-98a60b205182">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_a5b46cc5-ee75-4f78-b9e3-5924c08e8bcd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_a881e63b-df7d-4eb0-9ff0-ea878ddb79a4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">ssti:UnvestedRestrictedStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_a93e5c00-a88a-4492-965c-c0cb9d594e67">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="C_a9b2de90-9c72-4c71-9827-49a8c58b191a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_a9bd1d7f-1e74-4c9f-a9a7-b45abade9ff0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerDurationAxis">ssti:RecognitionFromBeginningDeferredRevenueBalanceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_aa784e85-d2ad-412c-aad8-fa57df245e2f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_ad6c65f7-513f-4b42-8285-821d5072e5eb">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_aec290e2-452e-40e9-bb3e-9ffd13a9ac4e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_aecffb60-0955-4065-8e23-f7b6c6ef8220">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_b244f1c6-23ec-487a-9bf2-4175fb678f69">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_b3eb17b9-bc0f-444d-aa79-2e6620582d94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_b5cf808d-510d-4881-90cf-04f5f351c7a7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="C_b649e2f3-5249-49cc-b349-177bc0b70dd6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_b6f85494-a302-4f08-9124-86d1d433ed58">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-08-31</instant>
        </period>
    </context>
    <context id="C_b82221ba-d305-4d5c-b5d9-f782b830a474">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-01-01</endDate>
        </period>
    </context>
    <context id="C_b84ef990-8fc4-434e-9a91-9580c5f0e626">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_ba843d94-b9c2-4c0a-84df-c76400a718c6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-08-31</instant>
        </period>
    </context>
    <context id="C_bccbfbbd-7cda-4f8c-b810-c6dcca0ad170">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:MaintenanceSupportAndProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_bd3184cd-0e87-444d-88ae-9fcbbbb8c01f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">ssti:AccruedExpensesAndOtherCurrentLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_bd5d9466-dc4f-43cd-8e65-e6f81348a067">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_bf8da887-1ad6-4dad-847d-0c521a42016d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="C_c2065de9-2d2f-4aaa-aa43-35a44822e36b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ZA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_c3ed7e52-b29e-4543-a3e9-89ca9620a19d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_c44e46eb-f68f-427c-95df-22ed0f0f0042">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">ssti:UnvestedRestrictedStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_c499d9d7-4eb7-4b78-a59a-9048a418b043">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandSeventeenEquityIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-05-01</startDate>
            <endDate>2017-05-31</endDate>
        </period>
    </context>
    <context id="C_c57d6488-7d02-4208-8f7b-6e58091c8376">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="C_c64f7f46-cb61-4369-9fc6-b7afa2f18503">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_c7befd02-2694-424b-99d9-0515fa4da0f4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_c8f54555-5aaa-40a1-a85a-cad3e23ed1e0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:SubscriptionMaintenanceAndSupportServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_cb56e57f-04e2-47ea-a6d9-3ab4b0c4a2e8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ssti:PatentsAndIntellectualPropertyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_d3224397-a478-4405-9cae-d0a7bc0bb542">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">ssti:DomesticFinancialInstitutionOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_d3e03c8b-f0d4-49ce-b316-2ce5ab80f791">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_d3fed023-ce0a-450c-b631-1e94b2dc6f6b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">ssti:DomesticFinancialInstitutionThreeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_d70b99de-ef29-4d77-837e-3a5e9606cfab">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_d802c174-e7fa-4925-b164-f60af41b245f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ssti:AcquiredSoftwareTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_d8a3f401-5d03-47da-a1dd-dd4700aefc11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_d8c8ff70-8c1e-4636-90df-209e9bb41ad1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_d941df6c-f81f-4882-a6e7-ac57265797f8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">ssti:StockRepurchaseProgramMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_d9ea2a4c-a7c9-4999-9c09-7780c0d2dd13">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:SouthAmericaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_da16747c-e84d-413d-8f6d-ae00ad01f35f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandSeventeenEquityIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="C_dc085326-df1d-4bca-869c-7c0666de4fd2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_dd1e3ab7-23ba-44dc-87b4-76262ae7986f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_dda0052b-510e-4f91-9dc3-73cdc2c7440a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ZA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_ddb499ef-e435-4cab-afb6-2b74e0ca95d8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:BS</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_dfaa0b2a-742a-40b6-972e-3a8f2f0452db">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_e2b51864-980d-412b-86f9-b25a05ed43df">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_e4245d7f-a244-4565-9348-5e0d7f06fa59">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_e62e03a2-7ede-44a6-b2b4-d46c8b390dee">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_e67bcbab-2624-4827-9322-ca0e84ef22a0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:BS</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_e6fb1587-9845-4286-be93-e93b57f7c145">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:BS</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_e7ba679f-92fc-4894-bcb9-6aee2793c21a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="C_ea18427b-53e5-4163-b26f-7f56a728db44">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_ee5af4e5-51ad-43c8-bcf9-926cb7469ead">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_efdaef5b-5b12-4dca-b5b7-438ed2bd600c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="C_efff8137-a1c7-4c57-a0b2-029672737b52">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">ssti:StockRepurchaseProgramMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_f15479da-3aec-4335-9189-a02717a927bd">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_f400f9bb-9a06-4257-be98-0ebe26ee6562">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="C_f41fd3f7-c39c-4d45-8d83-44a10cce6a89">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_f95af2f4-3012-4cc2-924d-d40baa6e5112">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_f96e3db2-b7dc-492f-b625-42945641180e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_f9db51c5-d33a-41ea-9880-5f986f6fa757">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="C_f9f6333b-04ec-42ae-9629-1ce4a459849a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_faab6c1c-3ec0-4211-a050-a91701eb8e2c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_fb6ff255-9e0d-49c9-9e01-1a8bdc17edb2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">ssti:LeaseTerminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_003d93ef-a4d4-43c0-8262-a0dfd7071020">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="C_00788857-046d-4c69-aa56-c18129ececda">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_0234e9fd-83e5-48bc-afc1-1f31c21fb846">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerDurationAxis">ssti:RecognitionFromBeginningDeferredRevenueBalanceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_02ead27e-6a8e-41d6-ae28-361e2f9ec745">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-05-31</instant>
        </period>
    </context>
    <context id="C_046126a1-3c94-4af1-8c5c-9801b50dc97c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:ProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_0b619edc-e8fa-4446-a6d2-12ad05b44d27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="C_0d796143-eb6d-410a-b76c-2b68e5f1b5f4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:ProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_0dabec57-30b9-451f-902e-82daad6dee8b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_0f7a9a37-9214-4159-98ad-f4a05ae91116">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_0f921dab-def0-487e-ba70-10f45cdd60d9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_11c952fc-f218-45d1-8ecb-1454c429f16a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">ssti:UnvestedRestrictedStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_152ee14b-042e-4ec9-b803-f42f5b52286c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_15e7cb42-5ba0-4619-9a77-488368df9c29">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:PSU-BasedPerformanceBonusPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_166b3beb-19d4-44aa-9ab6-0df3e63a7b5a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_179523cc-6537-430e-abea-d535e4dac07a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_1896f14a-ab9b-4a3c-9182-f094c6bccbb8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_19584243-d9d6-41cf-8f38-a45ef1156558">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_215c1c9a-7dc0-4581-a82e-4d67cd225feb">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">ssti:UnvestedRestrictedStockUnitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_222eed63-1852-43c2-aeb8-370555ad7df7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandAndSeventeenEmployeeStockPurchasePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-05-01</startDate>
            <endDate>2017-05-31</endDate>
        </period>
    </context>
    <context id="C_22aa61a3-8fa4-42c7-b408-70251d47271f">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_23af2f6d-72c9-4042-bbd5-52b6b7bcc0b6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ZA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_264d7113-d930-418b-8965-90b459e35062">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_27fec0a5-2d60-44c0-9d6e-7e43578f994d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:BS</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_2a47e2d2-2a27-4683-a6ce-ecf2fb10345c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_2e8acf49-5b0f-4ec6-9d54-86be52d90e50">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">ssti:SoundthinkingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_30b254ec-8bda-46d1-bea5-ce715bb8ad01">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_32b8e83f-80a4-49d4-87d5-467104f9eb29">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_331903be-002f-464f-9997-7eca4ed0a3ae">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ssti:PatentsAndIntellectualPropertyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_33e41d3e-87d3-497f-a430-566dae1e6dde">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_351a4708-d169-4833-a2ad-3c11985baa77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_351b3353-8387-41c8-aaf4-e3ebbdc32ee4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_38ec3cda-b94f-4571-bc72-ff12471e4a3e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:PSU-BasedPerformanceBonusPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-02-01</startDate>
            <endDate>2025-02-28</endDate>
        </period>
    </context>
    <context id="C_39d6be9e-a9cf-476e-86b6-6f3e2a5cccb5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">ssti:AcquiredSoftwareTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_3c079ac5-86da-4a71-beff-90d2eacf323d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_3ead49f6-7b56-492b-ae09-7a3382b38dc5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_3fe7103e-4236-4c29-ad82-c866c95265dc">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ContractWithCustomerDurationAxis">ssti:RecognitionFromNewBillingsOfDeferredRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_41e5a601-8395-4d04-877b-e251abf8096e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_42592731-dd58-4d1e-a772-4aad8e45dd8a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">ssti:SoundthinkingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_4365f23e-26c5-4839-ad78-f15badd94069">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_44896582-2b1e-43a6-8e05-605d41df94b8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:ZA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_482c1ac1-0b50-47a3-96ba-d25d4eed94a8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:ProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_4857efeb-ac76-497f-9467-da928e644e40">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:SubscriptionMaintenanceAndSupportServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_49396b45-f68b-49b4-9d4b-7b28e5495469">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_4a6effc2-db48-4ed0-bc19-ca91fdc64c5c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_4b28ba2d-f633-4bdf-8f0a-fb61e710f0f4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_4bb40e2c-76d4-4c6d-b476-8b2fe247ccc5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:SubscriptionMaintenanceAndSupportServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_4d2f56af-f39c-42e6-b0c1-a3f8fdfe2033">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:SubscriptionMaintenanceAndSupportServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_4ea795a4-c3a9-46c6-81e4-e011b345ce17">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:TwoThousandSeventeenEquityIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="C_4f608cb9-9280-445a-ad3b-70370903c390">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:SouthAmericaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_50634026-1f9f-4d9f-9db2-a1ced29f5283">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-03-31</instant>
        </period>
    </context>
    <context id="C_509a0569-ae8a-4dd7-a199-25abd7d4b5db">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-03-31</instant>
        </period>
    </context>
    <context id="C_50d9bb12-07c5-4a66-a1a2-f5d4a776d234">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_515ef1c5-8683-4290-950e-82fd3816c134">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_5181a2e5-f233-48ac-a043-77203cfb9c0c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_522f5354-f707-423d-a4ef-92e2139fc49c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="C_54bd9088-8c94-49db-a6cf-8aca17304d6c">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_55761fbb-0cac-4679-a6bc-21b2b31d8283">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_5a14aca2-5d35-4f1e-800c-0bc1ec79a40e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-03-31</endDate>
        </period>
    </context>
    <context id="C_5d6800f9-562f-4264-b223-b9e406f05df8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="C_5e746d1b-74a7-41a0-9a82-2d26677e3e66">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2026-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_63e472be-2a49-4250-bef6-e201d8efb971">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_6583b95c-af84-4a6e-9ed9-c2d6690152f7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_6708ae2b-8c97-48c1-8004-36c3543b88a1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_6754cceb-ddda-46d7-bce6-3babd8ea72b1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_68af483f-b9d5-413f-88c0-157eae19d9f0">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">ssti:PerformanceBasedRestrictedStockUnitRSUMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">ssti:PSU-BasedPerformanceBonusPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_6a162941-7409-4632-9530-98f1f94edcd2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_6a737722-6953-44ed-9b87-0fc316b7583e">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2028-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_6e80f8e2-8d55-4935-bdd6-4752c95a09d1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">ssti:ProfessionalSoftwareDevelopmentServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_70a616cb-4fef-4072-ab45-e9a13c538bf2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="C_72be6c25-daa0-44d6-bfd9-63a676764a38">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">ssti:DomesticFinancialInstitutionTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CreditConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_762ff647-a9f4-4b74-aa5c-acc10546ba06">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="C_76ad5420-881e-425b-81a7-7cdb896dfee6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_76e0845d-526c-4a22-87b4-312b6ec710a9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="C_76eac33a-5756-4803-9f1a-277c3974053a">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_77ec4fa8-fb33-4d07-9983-a7629bc33655">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">ssti:CustomerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="C_7a41e0b3-0124-435c-a092-ea5f469f7bea">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_7a929952-acd3-4997-96c2-997008fd538d">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2025-07-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2025-06-30</instant>
        </period>
    </context>
    <context id="C_7ad02a42-8716-4e47-aea3-54300690d968">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-04-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_7b0882ee-fb75-4965-babb-4e2a0276df3b">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">ssti:SoundthinkingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-04-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_7b580e4b-0c13-4633-9238-a898326d3e82">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">ssti:SafepointeLLCMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-06-30</instant>
        </period>
    </context>
    <context id="C_7dd5e880-15ee-439c-a081-48807c99f4d9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2025-01-01</startDate>
            <endDate>2025-06-30</endDate>
        </period>
    </context>
    <context id="C_7f307dc4-8f88-42cf-845e-32135157d801">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RelatedPartyTransactionAxis">ssti:SoundthinkingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <context id="C_7f9f80e7-661d-49bf-b9fb-979f3caa3301">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001351636</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-06-30</endDate>
        </period>
    </context>
    <unit id="U_USDollarShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="U_pure">
        <measure>pure</measure>
    </unit>
    <unit id="U_Financialinstitution">
        <measure>ssti:Financialinstitution</measure>
    </unit>
    <unit id="U_Universities">
        <measure>ssti:Universities</measure>
    </unit>
    <unit id="U_shares">
        <measure>shares</measure>
    </unit>
    <unit id="U_Customers">
        <measure>ssti:Customers</measure>
    </unit>
    <unit id="U_Agencies">
        <measure>ssti:Agencies</measure>
    </unit>
    <unit id="U_City">
        <measure>ssti:City</measure>
    </unit>
    <unit id="U_Subsidiary">
        <measure>ssti:Subsidiary</measure>
    </unit>
    <unit id="U_USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="U_Customer">
        <measure>ssti:Customer</measure>
    </unit>
    <ecd:Rule10b51ArrTrmntdFlag
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      id="F_a0d23f5c-d057-483f-9132-9c3eee662773">false</ecd:Rule10b51ArrTrmntdFlag>
    <dei:EntityCentralIndexKey
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_a4356737-f295-4b80-b677-7a62f4cf3e4c">0001351636</dei:EntityCentralIndexKey>
    <ecd:NonRule10b51ArrAdoptedFlag
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      id="F_d7b22072-fa56-4d68-9692-c9ab8bb16203">false</ecd:NonRule10b51ArrAdoptedFlag>
    <dei:DocumentFiscalPeriodFocus
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_56109508-8bfe-445c-aa83-8ffc47443007">Q2</dei:DocumentFiscalPeriodFocus>
    <ecd:Rule10b51ArrAdoptedFlag
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      id="F_f4f62162-f290-4474-9ff1-9ffcebaa36a0">false</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrTrmntdFlag
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      id="F_55d0e08f-22c9-44b9-8f6a-4dc37a74efcd">false</ecd:NonRule10b51ArrTrmntdFlag>
    <dei:CurrentFiscalYearEndDate
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_1d3b709a-0e6e-4230-9ab3-d62382ff0a7e">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:AmendmentFlag
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_f1fa90cf-ff98-4d38-95aa-0db907901b70">false</dei:AmendmentFlag>
    <us-gaap:CommitmentsAndContingencies
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      id="F_1282fe08-2987-4701-9a83-55d4cf5b1447"
      unitRef="U_USD"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      id="F_7a1d025b-b516-4845-85c8-fa091a304e5c"
      unitRef="U_USD"
      xsi:nil="true"/>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="C_a9bd1d7f-1e74-4c9f-a9a7-b45abade9ff0"
      decimals="-3"
      id="F_567e21a0-9fe9-456e-832c-0ff085ea3142"
      unitRef="U_USD">23484000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="C_0234e9fd-83e5-48bc-afc1-1f31c21fb846"
      decimals="-3"
      id="F_06429d32-4537-4ebc-86cc-d19d6502fed4"
      unitRef="U_USD">29051000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="C_7a929952-acd3-4997-96c2-997008fd538d"
      id="F_a7f7bb7e-1cb0-40b4-bfe3-75e936ee0852">P6M</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="C_5e746d1b-74a7-41a0-9a82-2d26677e3e66"
      id="F_8c796ba5-126f-4c87-bca3-8bedf08160f5">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="C_937b7985-9731-45a1-9693-d6991a28d143"
      id="F_2fc23526-7ba6-46e0-9ebd-5e8619fff34b">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="C_6a737722-6953-44ed-9b87-0fc316b7583e"
      id="F_8bfe4752-f28e-4d06-a7bb-d5cf53a2fee9"
      xsi:nil="true"/>
    <us-gaap:RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration
      contextRef="C_ee5af4e5-51ad-43c8-bcf9-926cb7469ead"
      id="F_ac3bc36c-c6de-4913-9dbf-40bd9d6dc5bf">http://fasb.org/us-gaap/2025#OtherNonoperatingIncomeExpense</us-gaap:RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration>
    <us-gaap:RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration
      contextRef="C_fb6ff255-9e0d-49c9-9e01-1a8bdc17edb2"
      id="F_5676ee34-2e1d-48d3-a5fc-631384d2056b">http://fasb.org/us-gaap/2025#OtherNonoperatingIncomeExpense</us-gaap:RestructuringIncurredCostStatementOfIncomeOrComprehensiveIncomeExtensibleEnumeration>
    <dei:DocumentType
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_521abeb6-c83c-4b0c-858e-c71d7af71390">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_b828655e-6b70-4305-8ec3-526d2b6202b1">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_a3353a63-02a0-4917-9891-2a5e82e77dac">2025-06-30</dei:DocumentPeriodEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_64b5f829-8774-48dd-82ca-6f1ad00b6001">2025</dei:DocumentFiscalYearFocus>
    <dei:DocumentTransitionReport
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_7fcf4402-fc3c-4aed-955c-8b56555100e4">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_09b28764-3d28-4aa6-b800-1b8e81175eb3">001-38107</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_3bac9fa0-c8b1-4d90-a0c3-25cee32e2ab2">SoundThinking, Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_c52ab1b9-0799-4d77-905f-0e5906183442">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_76c0bc89-ae92-4324-b30a-7464d9aae141">47-0949915</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_ca46e7b1-1814-4325-8d9c-4b829aa968b3">39300 Civic Center Dr.</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_15849dd5-eca3-4fd3-9554-3c9967baa593">Suite 300</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_212e2df4-1bc9-41e7-b975-997c69c47196">Fremont</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_79a393d7-64ad-4fe3-b9bd-b942e33747e8">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_7ba9fd0a-b6e5-4ccb-b401-f21bc21caaa5">94538</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_c4dd028c-9487-40f4-bca5-1d41461f23c0">510</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_e05a60a2-4f32-41f7-a769-2731c93519b7">794-3100</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_e1a64e35-7ebf-4d74-a233-d24454a2e497">Common stock, par value $0.005 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_2d1a296d-af2a-4630-b277-efa2a59b6caf">SSTI</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_dd050567-44bf-4374-b206-ad8a02438acf">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_55d57960-39d7-4710-8097-e5d6ca542fba">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_d681d54d-c05b-4e29-8cee-f3f8cae5b743">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_d567d8d1-7be1-452a-9856-734f8e3ac8f0">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_4c5d8df3-be91-4149-87c9-3ae3b319ceaa">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_d065f523-8348-4eaf-999a-4dca71d0ed99">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_c541eee5-5786-415f-8f75-7564425e1cce">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="C_9ad7f4bb-818b-43b8-9b0c-27ce79dc9486"
      decimals="INF"
      id="F_a51a8072-6c1d-44e5-9c7a-210d69e05961"
      unitRef="U_shares">12791251</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_8b3b9951-154a-4bda-b0c1-f585c8416ed9"
      unitRef="U_USD">8950000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_ecad8ae1-78a0-4859-8d15-50aab54c09b6"
      unitRef="U_USD">13183000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <ssti:AccountsReceivableAndContractAssetCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_e1a3a426-4b43-4f26-b984-aa984321429a"
      unitRef="U_USD">30743000</ssti:AccountsReceivableAndContractAssetCurrent>
    <ssti:AccountsReceivableAndContractAssetCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_74d53682-bdfb-4785-adbc-4a8b1caf10ce"
      unitRef="U_USD">25464000</ssti:AccountsReceivableAndContractAssetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_bdea637e-72c2-44c2-9879-198994937aff"
      unitRef="U_USD">4816000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_4fe57b77-f6f4-4313-9f00-15c940e12c86"
      unitRef="U_USD">4881000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_8b9f7c9f-e71d-4398-a08f-b80cf09e6002"
      unitRef="U_USD">44509000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_fc3a1f66-06a1-4310-9065-90b969b6479b"
      unitRef="U_USD">43528000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_e7de688a-c1d8-4748-bfa6-58129488611a"
      unitRef="U_USD">19915000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_a0576b53-0032-44b4-8976-a9fb745b5535"
      unitRef="U_USD">20131000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_a0f8a5f6-72c6-4803-a7a7-53c33942cab1"
      unitRef="U_USD">1643000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_f5ddf363-93bb-4999-83e3-c3668c4e39ba"
      unitRef="U_USD">1878000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_d303793b-77d0-4e46-8981-2a2032ad6433"
      unitRef="U_USD">34213000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_23773a5a-3145-4236-b2d3-4ad3495ca7a7"
      unitRef="U_USD">34213000</us-gaap:Goodwill>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_0f17293c-7ab3-424d-9b67-6769d350bfec"
      unitRef="U_USD">31266000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_8aacc349-bfe6-487b-a617-52e92061864a"
      unitRef="U_USD">33182000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_3249cea4-31e7-4d28-8cf2-523fa1c65c86"
      unitRef="U_USD">3230000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_2151f485-f708-4876-b9d7-a4efd5162c43"
      unitRef="U_USD">3861000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_c1999d76-95c7-4098-89b8-098f234434e4"
      unitRef="U_USD">134776000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_d578f989-5d8d-42e1-8e5a-2b2bbfe6698e"
      unitRef="U_USD">136793000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_317dd3ef-357c-475b-aaad-cc13f9f43f14"
      unitRef="U_USD">3348000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_c8cdd243-0864-4570-a481-bb7dd0ab3fef"
      unitRef="U_USD">3442000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_aff99a43-cf03-402e-9d28-a6a0f2ddf002"
      unitRef="U_USD">7153000</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_c7ccc980-627f-4ac5-937e-70d51b306cd7"
      unitRef="U_USD">10216000</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:LinesOfCreditCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_57d30c24-bbd6-4c31-b0ba-5e8e5675fdfb"
      unitRef="U_USD">4000000</us-gaap:LinesOfCreditCurrent>
    <us-gaap:LinesOfCreditCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_9f2ea3ee-95ae-4404-a9ec-86bc0eb3aee0"
      unitRef="U_USD">4000000</us-gaap:LinesOfCreditCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_3145ef1f-d8f4-43ed-8955-4ff4aeb6ac2e"
      unitRef="U_USD">38479000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_e4a044c4-686a-4934-a498-fc2a9920be65"
      unitRef="U_USD">38401000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_573185e0-03e5-473e-baef-57136f42949a"
      unitRef="U_USD">52980000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_27f0ff4d-d230-4c9e-b8d2-727809f36a76"
      unitRef="U_USD">56059000</us-gaap:LiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_3346a21d-0f71-4e4b-af55-2486bc55c48c"
      unitRef="U_USD">5051000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:ContractWithCustomerLiabilityNoncurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_bd846478-5a71-4172-9d95-2fd94edfba60"
      unitRef="U_USD">5832000</us-gaap:ContractWithCustomerLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_7f36e45a-5ff7-481e-ba41-81803a73f75b"
      unitRef="U_USD">1378000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_449f0e7e-19e3-42c1-9b1b-05e1a25d19a4"
      unitRef="U_USD">1361000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_1df03795-2edf-4e70-b525-94bc7db97f7c"
      unitRef="U_USD">846000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_6507deb7-b6ef-4237-aaa2-d971399a2400"
      unitRef="U_USD">1142000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:Liabilities
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_7746c11b-ae2a-41ff-9071-a959e70fe155"
      unitRef="U_USD">60255000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_e2320c70-fe06-4126-983d-cac160565985"
      unitRef="U_USD">64394000</us-gaap:Liabilities>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="INF"
      id="F_4710bd00-ed68-4a22-bf11-11f6cf77c8d7"
      unitRef="U_USDollarShare">0.005</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="INF"
      id="F_e64a5a6a-e425-42e9-a45b-a8d886aec630"
      unitRef="U_USDollarShare">0.005</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="INF"
      id="F_0397f24b-c898-4e19-a6b4-b0ed6ee9980a"
      unitRef="U_shares">500000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="INF"
      id="F_8d6f6719-06de-4197-82a8-c066c57c13ba"
      unitRef="U_shares">500000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="INF"
      id="F_182b18c1-ac82-4b2b-b2fd-2ce42c544271"
      unitRef="U_shares">12788631</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="INF"
      id="F_bc16a179-e50c-4dc6-b4ed-f7ad0ed24051"
      unitRef="U_shares">12788631</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="INF"
      id="F_85983fe6-3edf-49fb-99cb-1775a1d49f14"
      unitRef="U_shares">12634485</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="INF"
      id="F_98760b7d-df73-4f77-a605-319826d435c4"
      unitRef="U_shares">12634485</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_cf7753a8-5fb2-44a0-99a1-6fc2d229f425"
      unitRef="U_USD">64000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_367b658f-ee5c-49f4-9d06-29669ec4f992"
      unitRef="U_USD">64000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_1996b06f-c797-4c62-89d4-4863d5c632f0"
      unitRef="U_USD">183719000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_53fd8aae-5476-4b0d-bca9-55c6d66f1861"
      unitRef="U_USD">177021000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_89278e2a-94ac-497d-91fd-9e720912ff14"
      unitRef="U_USD">-108902000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_8421c248-9ee4-46b6-9312-a327aae0e551"
      unitRef="U_USD">-104298000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_586e371a-146e-4deb-b23e-fba915090fbb"
      unitRef="U_USD">-360000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_5d82499a-1731-4583-ad5b-580d880e2b73"
      unitRef="U_USD">-388000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_48597cf9-60cc-493d-8c52-89fdbf7f2f8b"
      unitRef="U_USD">74521000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_eccabb67-3f1e-404d-a150-2d54950afe93"
      unitRef="U_USD">72399000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_e152540e-220b-487b-85de-2ddb818fac9c"
      unitRef="U_USD">134776000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_8b4ce7a5-1ead-4eaf-ac75-7ec2575cc90f"
      unitRef="U_USD">136793000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_533fa003-d9fa-4032-b053-97b3fd9efa63"
      unitRef="U_USD">25889000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_36c58680-0dd4-48c6-bbbe-7d63faea991b"
      unitRef="U_USD">26960000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_c139253d-d8b5-4687-8d28-f4d4ea156c37"
      unitRef="U_USD">54238000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_77ab88e0-b450-4dee-8de6-a3b7d1b370e8"
      unitRef="U_USD">52370000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_8016b046-e9cf-489c-9912-6ac788343b54"
      unitRef="U_USD">12058000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_ac66ed2a-c595-43f6-abca-1282885b0cc7"
      unitRef="U_USD">10781000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_05c264cd-65f7-4b41-b824-cd28c05b7475"
      unitRef="U_USD">23776000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_1f46db23-9a70-46a4-be15-17fa0534201b"
      unitRef="U_USD">21052000</us-gaap:CostOfGoodsAndServicesSold>
    <ssti:ImpairmentOfPropertyAndEquipment
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_e61f38a5-2eaf-4f31-b8a9-0d1b61808e97"
      unitRef="U_USD">36000</ssti:ImpairmentOfPropertyAndEquipment>
    <ssti:ImpairmentOfPropertyAndEquipment
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_5d42f6ac-ce8f-4f46-ac8c-79929819fdcc"
      unitRef="U_USD">106000</ssti:ImpairmentOfPropertyAndEquipment>
    <ssti:ImpairmentOfPropertyAndEquipment
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_76776c04-f00e-4f73-a527-7d151d953029"
      unitRef="U_USD">73000</ssti:ImpairmentOfPropertyAndEquipment>
    <ssti:ImpairmentOfPropertyAndEquipment
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_042272cd-2a70-4902-8ac8-9f941053f208"
      unitRef="U_USD">358000</ssti:ImpairmentOfPropertyAndEquipment>
    <us-gaap:CostOfRevenue
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_fe9ff960-777e-40eb-bb23-2d62d1470136"
      unitRef="U_USD">12094000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_67a1b9ba-53b9-42be-8fc9-a2b011c90719"
      unitRef="U_USD">10887000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_67567bde-541c-42c8-a690-d300616efd2d"
      unitRef="U_USD">23849000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_ddb9bc86-33b8-4a7c-83ff-9844446098e6"
      unitRef="U_USD">21410000</us-gaap:CostOfRevenue>
    <us-gaap:GrossProfit
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_a22a97d3-73f4-4144-a004-6add03fc99f9"
      unitRef="U_USD">13795000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_aeb62611-058c-478b-9b51-2a5be5feb00f"
      unitRef="U_USD">16073000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_3aaf8542-8c94-4494-ae61-f32270fe029e"
      unitRef="U_USD">30389000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_5056fe32-e3e8-44a0-b4bb-7cb2e52ea495"
      unitRef="U_USD">30960000</us-gaap:GrossProfit>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_a8c5ea20-edcf-42a3-96ad-971e2966ee7a"
      unitRef="U_USD">6525000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_f3cbdd17-6211-4bcd-ba4f-fb952014f8c1"
      unitRef="U_USD">7322000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_f51c636b-dcde-48f6-8544-b75f10a69e1b"
      unitRef="U_USD">13784000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_f96c9078-edf6-4df2-a180-beee4b6a35bb"
      unitRef="U_USD">14434000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_7b667971-9983-451e-bb4b-6943a86291de"
      unitRef="U_USD">3746000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_a8654a4e-4d9a-4b35-9a4c-724830ea478f"
      unitRef="U_USD">3468000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_c1491e9c-187f-4208-b9ca-ae2beb028f1b"
      unitRef="U_USD">7811000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_dab8bfa7-01e3-45b3-9ac9-9c28b07ffd21"
      unitRef="U_USD">7028000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_669aee45-6711-4efc-9cd4-f5822a43b445"
      unitRef="U_USD">6467000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_87a9ce75-d5b5-411d-a392-4acacb1979f3"
      unitRef="U_USD">5880000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_4501a71b-889e-48d2-9f71-e727f69d9345"
      unitRef="U_USD">12941000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_18b73f3c-ff85-48b4-8144-c0d9f277904d"
      unitRef="U_USD">12710000</us-gaap:GeneralAndAdministrativeExpense>
    <ssti:FairValueAdjustmentOfContingentConsideration
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_4ef8be6f-aca7-4b36-a811-5983cfd9997b"
      unitRef="U_USD">-554000</ssti:FairValueAdjustmentOfContingentConsideration>
    <ssti:FairValueAdjustmentOfContingentConsideration
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_d5508c0d-42e7-4d3a-ae92-e6713e95908c"
      unitRef="U_USD">-554000</ssti:FairValueAdjustmentOfContingentConsideration>
    <us-gaap:OperatingExpenses
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_7d143f3a-ceca-47dc-b5f0-9daea8c0a783"
      unitRef="U_USD">16738000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_0dff0e69-9171-4da3-9697-ef043c4d61df"
      unitRef="U_USD">16116000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_bebc6eb1-7a17-45d3-a44f-b892942c083f"
      unitRef="U_USD">34536000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_34294015-6d92-43c9-983b-4e27471aa880"
      unitRef="U_USD">33618000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_b09dcc7a-d84f-4e7e-ab0c-60ee4a007b2c"
      unitRef="U_USD">-2943000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_6104ed59-87fa-4296-a5ca-643ec152ff56"
      unitRef="U_USD">-43000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_8ab557ca-5539-4315-9427-52c1f76029cd"
      unitRef="U_USD">-4147000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_1ee8321f-498b-4013-939a-f6a432937b75"
      unitRef="U_USD">-2658000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_50697557-74e5-4bf1-94c4-ea72390cdee0"
      unitRef="U_USD">-20000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_3226029a-73ba-449c-ab86-469babfa365e"
      unitRef="U_USD">-61000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_01420ed2-c7e3-4f45-86f6-7b1cf2d2abef"
      unitRef="U_USD">-32000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:InterestIncomeExpenseNonoperatingNet
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_a7f59e81-813d-44c1-aac0-3fedb2cfbe58"
      unitRef="U_USD">-183000</us-gaap:InterestIncomeExpenseNonoperatingNet>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_71e0b4f4-0890-4b2e-92a7-f29da716c015"
      unitRef="U_USD">-71000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_817e7d1c-3652-4aaa-a4eb-3e946b6e7d8a"
      unitRef="U_USD">-414000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_d1768b0e-5bf6-46a2-8516-1a7cdeec4872"
      unitRef="U_USD">-239000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_17e5ba36-c78d-4379-8d15-ada9b9ce780d"
      unitRef="U_USD">-472000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_a1323e78-aa87-4e5b-8df4-21a41a9649a5"
      unitRef="U_USD">-91000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_3d38520c-cb68-4b32-95f8-c8436397df5e"
      unitRef="U_USD">-475000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_767366c5-cc3a-4fad-83fe-fc0e42347bfc"
      unitRef="U_USD">-271000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_ef9db056-271f-469c-baf8-718bfd42d818"
      unitRef="U_USD">-655000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_5f7e7ed1-7604-48ca-ad1e-224b6c237ef7"
      unitRef="U_USD">-3034000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_5d1d4a8a-7c09-46c1-b5e9-72765ebac1e3"
      unitRef="U_USD">-518000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_03f53f06-a24e-4d1a-ae4c-f5897f4a2bee"
      unitRef="U_USD">-4418000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_5d744b02-2592-4d9c-a15b-bad620f3e989"
      unitRef="U_USD">-3313000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_1a3f210d-d3e8-4d40-b0ca-e7e5d2f6da9f"
      unitRef="U_USD">86000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_b24dde32-0415-469f-94d5-c4ef2543ce70"
      unitRef="U_USD">234000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_4c17938d-7215-4b84-abb7-a19cae746695"
      unitRef="U_USD">186000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_c0f95f4d-51e4-43a3-9071-4fb39849b399"
      unitRef="U_USD">348000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_108fb45c-962b-4892-960a-7f57cef160c3"
      unitRef="U_USD">-3120000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_ffb1f16d-ba16-4ebb-b854-2ac233d6553f"
      unitRef="U_USD">-752000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_2437c387-80cd-4298-92f1-c485c25bddf9"
      unitRef="U_USD">-4604000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_65f3207c-eca9-47cc-81c6-35d5349b7b37"
      unitRef="U_USD">-3661000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="2"
      id="F_d462aa5f-8cc8-4697-bc39-012115a4386d"
      unitRef="U_USDollarShare">-0.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="2"
      id="F_1c69d223-a4b3-4f6e-9b1a-8f3f9d1b463c"
      unitRef="U_USDollarShare">-0.24</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="2"
      id="F_f253661c-72ba-4803-832c-73ee7671fa89"
      unitRef="U_USDollarShare">-0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="2"
      id="F_4c4ef667-a61f-4e5e-a5aa-aa13f50e28a7"
      unitRef="U_USDollarShare">-0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="2"
      id="F_23461217-6939-4ada-99ad-a92d267c3399"
      unitRef="U_USDollarShare">-0.36</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="2"
      id="F_4fe28600-7bec-4017-a2e9-dc056c860d3c"
      unitRef="U_USDollarShare">-0.36</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="2"
      id="F_224d4002-57fc-4e22-8c63-1134f753a021"
      unitRef="U_USDollarShare">-0.29</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="2"
      id="F_ec089731-5273-4dda-b62c-e98d2a65c19e"
      unitRef="U_USDollarShare">-0.29</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="0"
      id="F_de614086-f94d-4131-b33d-74de2e41726d"
      unitRef="U_shares">12712191</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="0"
      id="F_98640181-fa27-46b3-9a9e-58c60f8f77c8"
      unitRef="U_shares">12712191</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="0"
      id="F_5cb90a27-45fc-4d9a-81f0-b12ce25c12d9"
      unitRef="U_shares">12792952</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="0"
      id="F_d2da4ac3-7577-4412-af3e-7633be44ffd4"
      unitRef="U_shares">12792952</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="0"
      id="F_d59ab48f-fbe2-4d56-a0d6-286ead998fc8"
      unitRef="U_shares">12680456</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="0"
      id="F_a6273e75-ae2c-4fd3-93f4-e4e6b92b4a01"
      unitRef="U_shares">12680456</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="0"
      id="F_830a008b-230f-4a50-a630-76246f11ddbe"
      unitRef="U_shares">12781910</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="0"
      id="F_29982eba-c5dd-4c21-9dbd-a1a86c12f283"
      unitRef="U_shares">12781910</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_60f5da7d-146a-4ac1-b7ec-2eb7a947ccda"
      unitRef="U_USD">-3120000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_92628ba9-eaf5-49d3-bf95-3f9c6f7659d6"
      unitRef="U_USD">-752000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_5c310653-e407-4946-8a7b-b18832a35ecf"
      unitRef="U_USD">-4604000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_38adc636-4d9a-4036-940a-11b17316a9f0"
      unitRef="U_USD">-3661000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_28ce2d7c-0de1-41ae-a189-ae2905662147"
      unitRef="U_USD">2000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_6eb6de81-0e0a-40bf-87f0-a96103560d92"
      unitRef="U_USD">12000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_1ec7ee5b-9836-4c66-8bae-6b46e64e75c4"
      unitRef="U_USD">28000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_b7b0027e-59ba-43dc-ace8-8e6190d7b86c"
      unitRef="U_USD">-4000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_27105d31-fd7a-4a22-a9c6-7adcf56f3fa3"
      unitRef="U_USD">-3118000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_abac6b95-0c24-4819-a541-2507df547e14"
      unitRef="U_USD">-740000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_9019b562-0e32-49b4-bfb6-96772b400200"
      unitRef="U_USD">-4576000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_5b03215d-e479-4ad1-89ac-a5b77cb4f4ff"
      unitRef="U_USD">-3665000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:SharesOutstanding
      contextRef="C_70a616cb-4fef-4072-ab45-e9a13c538bf2"
      decimals="INF"
      id="F_1b9f25b3-4c3c-4def-9e85-2b368f211c84"
      unitRef="U_shares">12634485</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="C_70a616cb-4fef-4072-ab45-e9a13c538bf2"
      decimals="-3"
      id="F_372c7a64-0a56-4478-bbb4-9f5575015f62"
      unitRef="U_USD">64000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_d3e03c8b-f0d4-49ce-b316-2ce5ab80f791"
      decimals="-3"
      id="F_942abf4f-2e63-424b-8c96-fa95253c7092"
      unitRef="U_USD">177021000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_80178e18-784b-4da8-b3cf-13e3cd9a0862"
      decimals="-3"
      id="F_d3e75d70-c91d-4c72-881a-e320fb7287fd"
      unitRef="U_USD">-104298000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_6754cceb-ddda-46d7-bce6-3babd8ea72b1"
      decimals="-3"
      id="F_24373a38-3994-445a-9516-8b8227a0c2fe"
      unitRef="U_USD">-388000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_200335e2-b523-4c5c-9f3c-205c77bbf24e"
      unitRef="U_USD">72399000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_003d93ef-a4d4-43c0-8262-a0dfd7071020"
      decimals="-3"
      id="F_86401ae0-c8bf-4b47-b616-3ad6fa7b8ec6"
      unitRef="U_USD">3000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49"
      decimals="-3"
      id="F_85cc0b74-169a-49e5-ae69-f1d2857895a9"
      unitRef="U_USD">3000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_e7ba679f-92fc-4894-bcb9-6aee2793c21a"
      decimals="INF"
      id="F_7a0d4bcb-623b-454e-8452-c26f590d874b"
      unitRef="U_shares">33493</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_003d93ef-a4d4-43c0-8262-a0dfd7071020"
      decimals="-3"
      id="F_e2e87849-00dc-4020-8c99-0e885b4dd8db"
      unitRef="U_USD">504000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49"
      decimals="-3"
      id="F_55b9c265-abf2-413e-95ce-3cb5198a4ca2"
      unitRef="U_USD">504000</us-gaap:StockRepurchasedDuringPeriodValue>
    <ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting
      contextRef="C_e7ba679f-92fc-4894-bcb9-6aee2793c21a"
      decimals="INF"
      id="F_36b53117-e5a5-441a-a280-2624a78692b4"
      unitRef="U_shares">65109</ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_003d93ef-a4d4-43c0-8262-a0dfd7071020"
      decimals="-3"
      id="F_b78dda17-308f-4d24-95b0-fecd3e06fd3b"
      unitRef="U_USD">3404000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49"
      decimals="-3"
      id="F_2536ba87-4e88-49e2-8439-448d10936205"
      unitRef="U_USD">3404000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_f400f9bb-9a06-4257-be98-0ebe26ee6562"
      decimals="-3"
      id="F_a47c6ea9-f7ae-457d-af53-c6c55c57d6af"
      unitRef="U_USD">26000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49"
      decimals="-3"
      id="F_88129b20-4ae1-41ff-83ea-33cfd5b4eb7c"
      unitRef="U_USD">26000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="C_8ea297da-cc84-494a-8297-9f69a4846044"
      decimals="-3"
      id="F_09d83159-2068-40b5-9ace-50a279ddc6b0"
      unitRef="U_USD">-1484000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_5c0b19d5-b196-4462-a75f-642dbfcb3f49"
      decimals="-3"
      id="F_754d1984-8504-4eda-a3ac-dbefd9c138da"
      unitRef="U_USD">-1484000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding
      contextRef="C_39d6be9e-a9cf-476e-86b6-6f3e2a5cccb5"
      decimals="INF"
      id="F_4b943c0a-386a-4d3d-81c2-57a8d1caa0cd"
      unitRef="U_shares">12666101</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="C_39d6be9e-a9cf-476e-86b6-6f3e2a5cccb5"
      decimals="-3"
      id="F_5c9acff6-716b-4e45-9552-dff0b6a3d8cb"
      unitRef="U_USD">64000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_b5cf808d-510d-4881-90cf-04f5f351c7a7"
      decimals="-3"
      id="F_a1235fc0-0c51-4802-9505-c810c2ff3c73"
      unitRef="U_USD">179924000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_50634026-1f9f-4d9f-9db2-a1ced29f5283"
      decimals="-3"
      id="F_0a76021c-d80a-4eed-b14d-904ef812bfe4"
      unitRef="U_USD">-105782000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_9671648c-3946-46b7-a28b-a179a7ecd81d"
      decimals="-3"
      id="F_95b7e600-fa14-4045-bb4a-4b60b53b314a"
      unitRef="U_USD">-362000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_0b619edc-e8fa-4446-a6d2-12ad05b44d27"
      decimals="-3"
      id="F_6727ee60-e6ff-4b8b-ae25-11e6a708afe4"
      unitRef="U_USD">73844000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_76ad5420-881e-425b-81a7-7cdb896dfee6"
      decimals="INF"
      id="F_d3f3f6cf-3d22-4239-9a0c-5e4d2b86d46e"
      unitRef="U_shares">3453</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_a9b2de90-9c72-4c71-9827-49a8c58b191a"
      decimals="-3"
      id="F_3222f447-fb81-489f-9d81-73d1d6a7ec5b"
      unitRef="U_USD">16000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_25424049-9224-47d5-b2f4-7266b2941891"
      unitRef="U_USD">16000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_76ad5420-881e-425b-81a7-7cdb896dfee6"
      decimals="INF"
      id="F_360dfcb9-9245-4436-9859-a352e9720214"
      unitRef="U_shares">31570</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_a9b2de90-9c72-4c71-9827-49a8c58b191a"
      decimals="-3"
      id="F_3c77f13d-4b1a-43b9-a1f9-db573571d6af"
      unitRef="U_USD">470000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_2d74a159-1424-4831-ad67-571a6e019df4"
      unitRef="U_USD">470000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="C_76ad5420-881e-425b-81a7-7cdb896dfee6"
      decimals="INF"
      id="F_e498e667-b547-4341-bd5c-6fd22b2a7d45"
      unitRef="U_shares">40865</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="C_a9b2de90-9c72-4c71-9827-49a8c58b191a"
      decimals="-3"
      id="F_37bcf088-7e06-42c4-bffe-13a394f8b4f0"
      unitRef="U_USD">408000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_95b13888-4a8c-400b-9169-39e588f2ec84"
      unitRef="U_USD">408000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting
      contextRef="C_76ad5420-881e-425b-81a7-7cdb896dfee6"
      decimals="INF"
      id="F_0818c55b-967b-4b2f-8a5c-3fb81252cd3d"
      unitRef="U_shares">109782</ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_a9b2de90-9c72-4c71-9827-49a8c58b191a"
      decimals="-3"
      id="F_d28292f5-e819-48e0-b4eb-30f56f5d5bd2"
      unitRef="U_USD">3841000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_229a5110-d4c7-4ec7-a55d-46412a5cd462"
      unitRef="U_USD">3841000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_bd5d9466-dc4f-43cd-8e65-e6f81348a067"
      decimals="-3"
      id="F_6dcae85d-f8b3-41e4-a3d3-80e0aad87048"
      unitRef="U_USD">2000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_e02d4dc0-1c1a-4e98-8eaa-e5daf3aa2ac2"
      unitRef="U_USD">2000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="C_e2b51864-980d-412b-86f9-b25a05ed43df"
      decimals="-3"
      id="F_32f3c651-be6e-4bc0-a8ec-72deb7657be0"
      unitRef="U_USD">-3120000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_ed63002e-80cd-49a6-93e5-40e8e8e0bfd9"
      unitRef="U_USD">-3120000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding
      contextRef="C_0f7a9a37-9214-4159-98ad-f4a05ae91116"
      decimals="INF"
      id="F_e8340d2f-a4a4-458c-81ad-5d40aa290206"
      unitRef="U_shares">12788631</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="C_0f7a9a37-9214-4159-98ad-f4a05ae91116"
      decimals="-3"
      id="F_68b2c9b1-91ac-4e4c-97bb-fcc7223dced6"
      unitRef="U_USD">64000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_6583b95c-af84-4a6e-9ed9-c2d6690152f7"
      decimals="-3"
      id="F_fdf1508b-7ad9-4be8-9c9e-f051b06dac1e"
      unitRef="U_USD">183719000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_76eac33a-5756-4803-9f1a-277c3974053a"
      decimals="-3"
      id="F_e4b070f9-3eed-4915-ac08-6c4d1488fc32"
      unitRef="U_USD">-108902000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_5a14aca2-5d35-4f1e-800c-0bc1ec79a40e"
      decimals="-3"
      id="F_971abe29-ae74-4498-963d-b6040cae235c"
      unitRef="U_USD">-360000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_2e34363c-364e-43a1-83ef-faa816bdfe98"
      unitRef="U_USD">74521000</us-gaap:StockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="C_9d509af7-a06e-4dc0-853a-d56de89ff8c0"
      decimals="INF"
      id="F_36cfa05a-eada-4e09-9d3b-f0eda0da35b3"
      unitRef="U_shares">12761448</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="C_9d509af7-a06e-4dc0-853a-d56de89ff8c0"
      decimals="-3"
      id="F_bc16b2c1-6816-416a-b973-3215bd6cc39e"
      unitRef="U_USD">64000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_f95af2f4-3012-4cc2-924d-d40baa6e5112"
      decimals="-3"
      id="F_03b7231c-0b67-4a9f-a414-ce6670a4daf7"
      unitRef="U_USD">170139000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_19584243-d9d6-41cf-8f38-a45ef1156558"
      decimals="-3"
      id="F_0443daf5-f534-4a60-a7d3-e017e1c096e3"
      unitRef="U_USD">-95118000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_0f921dab-def0-487e-ba70-10f45cdd60d9"
      decimals="-3"
      id="F_4d4fe895-0388-415d-bc2e-b06e7d5bd39f"
      unitRef="U_USD">-328000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_762ff647-a9f4-4b74-aa5c-acc10546ba06"
      decimals="-3"
      id="F_63bbe942-cd68-4687-b375-2817cd3b5cb0"
      unitRef="U_USD">74757000</us-gaap:StockholdersEquity>
    <ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting
      contextRef="C_f9db51c5-d33a-41ea-9880-5f986f6fa757"
      decimals="INF"
      id="F_02096387-d8ba-4b7c-a2c6-69ec322468a7"
      unitRef="U_shares">31720</ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_522f5354-f707-423d-a4ef-92e2139fc49c"
      decimals="-3"
      id="F_0e73efdd-bc71-4bfd-a9ac-81e7e4a21aff"
      unitRef="U_USD">2927000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_5d6800f9-562f-4264-b223-b9e406f05df8"
      decimals="-3"
      id="F_1f8a85f8-bf79-4468-acaa-d2bdf34f4dc9"
      unitRef="U_USD">2927000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="C_a93e5c00-a88a-4492-965c-c0cb9d594e67"
      decimals="-3"
      id="F_9a71e09b-3e2f-46bc-b03b-e3606db0fb83"
      unitRef="U_USD">-16000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="C_5d6800f9-562f-4264-b223-b9e406f05df8"
      decimals="-3"
      id="F_5b464928-3d12-450a-9f83-cdb7653b2b24"
      unitRef="U_USD">-16000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="C_76e0845d-526c-4a22-87b4-312b6ec710a9"
      decimals="-3"
      id="F_bdeaedd2-c683-4c4f-98c2-807401b34dda"
      unitRef="U_USD">-2909000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_5d6800f9-562f-4264-b223-b9e406f05df8"
      decimals="-3"
      id="F_6503d28c-6b4a-44a6-b534-4a585ad5cb35"
      unitRef="U_USD">-2909000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding
      contextRef="C_509a0569-ae8a-4dd7-a199-25abd7d4b5db"
      decimals="INF"
      id="F_cddb3a5e-72e0-49e4-89fd-9757c03f15ef"
      unitRef="U_shares">12793168</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="C_509a0569-ae8a-4dd7-a199-25abd7d4b5db"
      decimals="-3"
      id="F_6d21b8c1-193c-44c0-b287-2e5a531c3994"
      unitRef="U_USD">64000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_c57d6488-7d02-4208-8f7b-6e58091c8376"
      decimals="-3"
      id="F_b2e832e0-3e7b-44b7-b0be-24445974747b"
      unitRef="U_USD">173066000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_bf8da887-1ad6-4dad-847d-0c521a42016d"
      decimals="-3"
      id="F_1579d21a-e95e-44d7-a5a7-29dfdf0840a5"
      unitRef="U_USD">-98027000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_ea18427b-53e5-4163-b26f-7f56a728db44"
      decimals="-3"
      id="F_b53efa98-8eb5-463b-8c78-1912b7b5c138"
      unitRef="U_USD">-344000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_976a43f2-4f77-4590-b9ab-2373be7be554"
      decimals="-3"
      id="F_1e855a75-7b3c-4f14-90a1-5be0aaf44965"
      unitRef="U_USD">74759000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f"
      decimals="INF"
      id="F_2096be51-83da-4373-be3a-e004c6c9a7a7"
      unitRef="U_shares">5640</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b"
      decimals="-3"
      id="F_4a74c3c7-da6c-479f-aa96-0ea28ee46f20"
      unitRef="U_USD">5000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_dab49b7d-795f-4c92-b2f3-339f1d5b6c82"
      unitRef="U_USD">5000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f"
      decimals="INF"
      id="F_ff674dd3-9223-4e98-bd72-8c510ff3dc69"
      unitRef="U_shares">134150</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b"
      decimals="-3"
      id="F_a89421d0-a45b-4c55-858a-b3916e8bb859"
      unitRef="U_USD">1999000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_89793007-61c0-4a70-80cf-24b6fe57eecc"
      unitRef="U_USD">1999000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f"
      decimals="INF"
      id="F_962dc3ab-87d9-42df-8f7d-8e6ac1406bf2"
      unitRef="U_shares">36586</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b"
      decimals="-3"
      id="F_f89dea4b-6cef-49bb-8ebc-d17989978f97"
      unitRef="U_USD">444000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_33c05650-eeed-4e7e-bb38-833f1119cfbc"
      unitRef="U_USD">444000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting
      contextRef="C_ede4dcba-e70d-4113-8a38-97bd7bdf8c1f"
      decimals="INF"
      id="F_ed4ac19d-4ef0-4f0a-b471-53739774689d"
      unitRef="U_shares">81684</ssti:StockIssuedDuringPeriodSharesRestrictedStockAwardVesting>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_343b09ce-6f5c-4503-916a-1aefe10e3c5b"
      decimals="-3"
      id="F_64ac4072-6575-4f6f-b2a3-f18f68b9d008"
      unitRef="U_USD">3146000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_8389b19a-209f-4aba-ba7f-02aec9fcad52"
      unitRef="U_USD">3146000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="C_e62e03a2-7ede-44a6-b2b4-d46c8b390dee"
      decimals="-3"
      id="F_c4c4f301-a3e5-4dd4-99c6-6f86edb5e765"
      unitRef="U_USD">12000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_27c56ef0-5416-4ed4-8178-1f737bbfcca6"
      unitRef="U_USD">12000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="C_7a41e0b3-0124-435c-a092-ea5f469f7bea"
      decimals="-3"
      id="F_09edb132-f17e-4547-9613-c654f44d56b5"
      unitRef="U_USD">-752000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_e2537021-1e2f-4be2-803b-b4bb90764bf3"
      unitRef="U_USD">-752000</us-gaap:NetIncomeLoss>
    <us-gaap:SharesOutstanding
      contextRef="C_faab6c1c-3ec0-4211-a050-a91701eb8e2c"
      decimals="INF"
      id="F_635d6585-94d3-4759-b34d-ed697d925252"
      unitRef="U_shares">12782928</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="C_faab6c1c-3ec0-4211-a050-a91701eb8e2c"
      decimals="-3"
      id="F_2b165e58-2cb2-4239-a78d-4b86d7316963"
      unitRef="U_USD">64000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_351b3353-8387-41c8-aaf4-e3ebbdc32ee4"
      decimals="-3"
      id="F_e82566fe-89aa-46d4-bd16-1b5edc5bf67b"
      unitRef="U_USD">174662000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_515ef1c5-8683-4290-950e-82fd3816c134"
      decimals="-3"
      id="F_21f4dd4d-e4ff-4ec1-959b-6263efe1c45a"
      unitRef="U_USD">-98779000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_cb56e57f-04e2-47ea-a6d9-3ab4b0c4a2e8"
      decimals="-3"
      id="F_bfd85998-f868-42e7-a326-239b879a2d76"
      unitRef="U_USD">-332000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="C_f96e3db2-b7dc-492f-b625-42945641180e"
      decimals="-3"
      id="F_eca11ee3-b007-423d-8994-05434636b31c"
      unitRef="U_USD">75615000</us-gaap:StockholdersEquity>
    <us-gaap:ProfitLoss
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_e5e7aaaf-af2c-47e0-9e77-fc642c37f9cc"
      unitRef="U_USD">-4604000</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_10ac5a96-9d3a-40ae-a040-5ddec9e0ec06"
      unitRef="U_USD">-3661000</us-gaap:ProfitLoss>
    <us-gaap:Depreciation
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_41e0c432-76b3-42c5-8a93-ba68aea1c43e"
      unitRef="U_USD">3037000</us-gaap:Depreciation>
    <us-gaap:Depreciation
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_86265f15-aebe-4c35-baa0-b45fc04b60cc"
      unitRef="U_USD">3126000</us-gaap:Depreciation>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_052c9799-832d-4518-a7d2-e2b4d3eee3e1"
      unitRef="U_USD">1931000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_2eb291d4-ce4e-41bf-85b1-d5988eda1f7a"
      unitRef="U_USD">1929000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ProductionRelatedImpairmentsOrCharges
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_332b2a68-f6b2-4f4b-8dc2-43f08319c6d5"
      unitRef="U_USD">73000</us-gaap:ProductionRelatedImpairmentsOrCharges>
    <us-gaap:ProductionRelatedImpairmentsOrCharges
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_0e07ff35-1059-4708-8512-678a0eb0da2e"
      unitRef="U_USD">358000</us-gaap:ProductionRelatedImpairmentsOrCharges>
    <us-gaap:ShareBasedCompensation
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_7519fe1d-59fb-43da-bf0c-79dcc44d4a24"
      unitRef="U_USD">7245000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_31e8da28-8bf0-48d9-9cc3-5c22b705a567"
      unitRef="U_USD">6073000</us-gaap:ShareBasedCompensation>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_47fd8f84-c22c-47d9-b28c-8e772ff3f403"
      unitRef="U_USD">18000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_9b1b3903-8b43-4ea9-9e99-0dd6567f495f"
      unitRef="U_USD">107000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_23d9fd6e-680b-45e9-81ad-2e485d26bfe9"
      unitRef="U_USD">-5000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:ProvisionForLoanLossesExpensed
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_74c04548-e968-4b37-bee1-8b9445670aee"
      unitRef="U_USD">269000</us-gaap:ProvisionForLoanLossesExpensed>
    <us-gaap:ProvisionForLoanLossesExpensed
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_0c39a9a4-310d-48ff-9c2e-9292be074482"
      unitRef="U_USD">50000</us-gaap:ProvisionForLoanLossesExpensed>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_e5f56a3e-582a-4e14-aa22-dce3f186451e"
      unitRef="U_USD">-554000</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <ssti:IncreaseDecreaseInAccountsReceivableAndContractAsset
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_51f5e1f9-35d1-49b8-9a12-5c8cfd77e596"
      unitRef="U_USD">5548000</ssti:IncreaseDecreaseInAccountsReceivableAndContractAsset>
    <ssti:IncreaseDecreaseInAccountsReceivableAndContractAsset
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_c4468cc3-d152-4354-9e40-2554aebcf601"
      unitRef="U_USD">5055000</ssti:IncreaseDecreaseInAccountsReceivableAndContractAsset>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_ee080135-f093-40e1-8816-09c785fb75b4"
      unitRef="U_USD">-696000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_e74f7e13-1873-4e77-85cf-85a32bc6c9df"
      unitRef="U_USD">-368000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_ec3461c0-03a1-468b-9dd9-df52b8a8b204"
      unitRef="U_USD">-713000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_28d96f6c-4792-473f-ba8d-42768597404a"
      unitRef="U_USD">-728000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_2d96bb19-3a37-4757-807c-326cbcf3911c"
      unitRef="U_USD">-3124000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_fb4c0710-4430-40a2-bd22-5f6d5013a746"
      unitRef="U_USD">20000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_03246589-4e28-473d-b085-4af46f449c6e"
      unitRef="U_USD">-704000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_744719d2-5380-4aa4-a1ce-6fac2455e6c7"
      unitRef="U_USD">7353000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_62975fb4-7e07-4811-b667-7a6bdd4f9183"
      unitRef="U_USD">-1424000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_7af3a3fa-1d70-46c3-9c7e-166ccaf261ce"
      unitRef="U_USD">9391000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_9b8ee470-2f48-43ff-af6e-658070a74b5c"
      unitRef="U_USD">2277000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_ec83f89d-155b-4bc1-adcf-b3b0d4396981"
      unitRef="U_USD">3717000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <ssti:PaymentForInvestmentInIntangibleAndOtherAssets
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_7c37750e-20cd-4e75-b45a-af1970230896"
      unitRef="U_USD">13000</ssti:PaymentForInvestmentInIntangibleAndOtherAssets>
    <ssti:PaymentForInvestmentInIntangibleAndOtherAssets
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_e2e453cc-0fbb-44df-95ea-3cb86e40095e"
      unitRef="U_USD">31000</ssti:PaymentForInvestmentInIntangibleAndOtherAssets>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_a8b760a3-24ca-4e0b-9885-940606af66a3"
      unitRef="U_USD">-2290000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_573174ae-1364-4363-93f7-c20d3d498fc7"
      unitRef="U_USD">-3748000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_d1edaf0b-ef4d-495d-87c9-ea1bb126e808"
      unitRef="U_USD">19000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_83a00380-93ee-40cd-ba0d-db587fb98f87"
      unitRef="U_USD">5000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_adc0c4c9-9408-4241-a301-e63c6f0b54d7"
      unitRef="U_USD">974000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_e01191c3-2bb4-4d9e-846c-e356f264e14a"
      unitRef="U_USD">1999000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_24af3b42-1990-49db-b226-9b821c179186"
      unitRef="U_USD">408000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_8bfec69f-f139-423c-b4f6-738d2c357fd2"
      unitRef="U_USD">444000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_d6bd0847-fd90-47a5-bdbb-45c68c913021"
      unitRef="U_USD">-547000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_56d1c5b8-bd22-45ff-bd66-8e1a9fd24160"
      unitRef="U_USD">-1550000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_93f35b8a-7f55-4300-902f-2ee96d6fd35d"
      unitRef="U_USD">-4261000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_e7a25406-f2e5-4419-a503-f841665271aa"
      unitRef="U_USD">4093000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_95e899f0-ba74-4b59-9f3d-bbabeffc940b"
      unitRef="U_USD">28000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_fb57e0f6-3f1f-4de8-af68-71195d06e38a"
      unitRef="U_USD">-6000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_dfc214f6-821a-495e-8ce3-9801de2d74b5"
      unitRef="U_USD">13183000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_762ff647-a9f4-4b74-aa5c-acc10546ba06"
      decimals="-3"
      id="F_8507ca51-97ca-44a4-9ff9-e613f02b8bc9"
      unitRef="U_USD">5703000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_695d95dd-f932-437f-95ad-eda0f49c1bf5"
      unitRef="U_USD">8950000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="C_f96e3db2-b7dc-492f-b625-42945641180e"
      decimals="-3"
      id="F_36f9d5d9-7e49-4df0-867d-b426973e0b83"
      unitRef="U_USD">9790000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_648b1147-4fef-4676-99c8-002d3f8c32cc"
      unitRef="U_USD">132000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_f877cad9-923a-4613-95ec-c5ac877a296b"
      unitRef="U_USD">268000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_8d76ac6b-5522-44a3-886d-de28156d460c"
      unitRef="U_USD">353000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_914db0f9-9528-4c54-b59c-361c4d46e463"
      unitRef="U_USD">136000</us-gaap:IncomeTaxesPaidNet>
    <ssti:Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_8827f6d7-0920-4b29-9067-72c816ac59ce"
      unitRef="U_USD">193000</ssti:Right-Of-UseAssetsObtainedInExchangeForLeaseLiabilities>
    <ssti:PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_6d3492c4-980f-44c7-a42d-63a3980ac725"
      unitRef="U_USD">706000</ssti:PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable>
    <ssti:PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_83373ba6-5c9c-407d-a32a-b4f587cfa534"
      unitRef="U_USD">614000</ssti:PropertyAndEquipmentPurchasesAndIntangiblesIncludedInAccountsPayable>
    <us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_88bc4f47-24b9-4c88-a694-6ccddafc7936">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 1. Organization and Description of Business&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;SoundThinking, Inc. (the &#x201c;Company&#x201d;) brings the power of digital transformation to law enforcement and security personnel by providing precision-policing and security solutions, combining data-driven solutions and strategic advisory services for law enforcement, security teams and civic leadership. As of June 30, 2025, the Company had approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;335&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;customers and to date has worked with approximately &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,100&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; agencies&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; to help drive more efficient, effective, and equitable public safety outcomes.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company&#x2019;s SafetySmart&#x99; platform includes six data-driven tools consisting of (i) its flagship product, ShotSpotter&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:6.7pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the leading outdoor gunshot detection, location and alerting system trusted by &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;179&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; cities and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;22&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; universities and corporations as of June 30, 2025, (ii) CrimeTracer&#x99;, a leading law enforcement search engine that enables investigators to search through more than one billion criminal justice records from across jurisdictions to generate tactical leads and quickly make intelligent connections to solve crimes, (iii) CaseBuilder&#x99;, a one-stop investigative management system for tracking, reporting, and collaborating on cases, (iv) ResourceRouter&#x99; that directs the deployment of patrol and community anti-violence resources in an objective way to help maximize the impact of limited resources and improve community safety, (v) PlateRanger&#x99; powered by Rekor&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;vertical-align:super;font-size:6.7pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, an advanced license plate recognition (&#x201c;ALPR&#x201d;) and vehicle identification solution that leverages artificial intelligence (&#x201c;AI&#x201d;) and machine learning (&#x201c;ML&#x201d;) to enhance investigative efficiency and provide real-time data sharing for law enforcement, introduced in July 2024 through a strategic partnership with Rekor Systems, Inc and (vi) SafePointe&#x99;, an AI-based weapons detection system. The Company offers its solutions on a software-as-a-service subscription model to its customers.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;ShotSpotter for Campus and ShotSpotter for Corporate, are typically smaller-scale deployments of ShotSpotter vertically marketed to universities, corporate campuses, and key infrastructure centers to mitigate risk and enhance security by notifying authorities of outdoor gunfire incidents, saving critical minutes for first responders to arrive. In 2019, the Company created a technology innovation unit, SoundThinking Labs, to expand its efforts supporting innovative uses of its technology to help protect wildlife and the environment. Additionally, the Company provides maintenance and support services and professional software development services to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;two&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customers, through sales channel intermediaries.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company&#x2019;s principal executive offices are located in Fremont, California. The Company has &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;six&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; wholly owned subsidiaries.&lt;/span&gt;&lt;/p&gt;</us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock>
    <ssti:NumberOfCustomers
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="INF"
      id="F_f26a7046-bed1-4bea-9675-c6ae32d1e899"
      unitRef="U_Customers">335</ssti:NumberOfCustomers>
    <ssti:NumberOfAgencies
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="0"
      id="F_2da69945-81d8-4828-bb95-a1628eeb616a"
      unitRef="U_Agencies">2100</ssti:NumberOfAgencies>
    <ssti:NumberOfCitiesInWhichEntityOperates
      contextRef="C_a53e737c-dbbe-44b2-a430-98a60b205182"
      decimals="0"
      id="F_9263fdc2-8d61-424f-8be7-4e1ea5f47886"
      unitRef="U_City">179</ssti:NumberOfCitiesInWhichEntityOperates>
    <ssti:NumberOfUniversitiesAndCorporationsInWhichEntityOperates
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="INF"
      id="F_6871e90e-d06a-4c4d-9433-ae23bda8becd"
      unitRef="U_Universities">22</ssti:NumberOfUniversitiesAndCorporationsInWhichEntityOperates>
    <ssti:NumberOfCustomers
      contextRef="C_bccbfbbd-7cda-4f8c-b810-c6dcca0ad170"
      decimals="0"
      id="F_43502899-f501-46c6-abc5-3aec5dc9bcf6"
      unitRef="U_Customers">2</ssti:NumberOfCustomers>
    <ssti:NumberOfSubsidiary
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="INF"
      id="F_4535387d-a64e-446d-9fcc-377a7c38e4a8"
      unitRef="U_Subsidiary">6</ssti:NumberOfSubsidiary>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_75b0a257-464a-4642-9498-c36549fac827">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 2. Summary of Significant Accounting Policies&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Basis of Presentation&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#x201c;U.S. GAAP&#x201d;) and applicable rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) regarding interim financial reporting. Certain information and note disclosures normally included in the consolidated financial statements prepared in accordance with U.S. GAAP have been condensed or omitted pursuant to such rules and regulations. The unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries. All significant intercompany transactions have been eliminated upon consolidation.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The accompanying unaudited condensed consolidated financial statements and related financial information should be read in conjunction with the consolidated financial statements filed with the Company&#x2019;s Annual Report on Form 10-K for the year ended December 31, 2024 (&#x201c;Annual Report&#x201d;) filed with the SEC on March 31, 2025.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In the opinion of management, the accompanying unaudited condensed consolidated financial statements reflect all normal recurring adjustments necessary to present fairly the financial position, results of operations, comprehensive loss, stockholders&#x2019; equity and cash flows for the interim periods, but are not necessarily indicative of the results of operations or cash flows to be anticipated for the full year 2025 or any future period. The Company has evaluated subsequent events occurring after the date of the condensed consolidated financial statements for events requiring recording or disclosure in the unaudited condensed consolidated financial statements.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Use of Estimates&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The preparation of unaudited condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and reported amounts of revenues and expenses during the reporting period. On an ongoing basis, management evaluates its significant estimates, including the valuation of accounts receivable, the lives and realization of tangible and intangible assets, contingent consideration liabilities, stock-based compensation expense, customer life, accounting for revenue recognition, contingent liabilities related to legal matters, and income taxes including deferred taxes and any related valuation allowance. In particular, the Company&#x2019;s contingent consideration liabilities are subject to significant estimates surrounding forecasts of certain revenues and other factors. Management bases its estimates on historical experience and on various other market-specific and relevant assumptions it believes to be reasonable under the circumstances. Actual results could differ from those estimates and such differences could be material to the Company&#x2019;s financial position and results of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company records net deferred tax assets to the extent the Company believes these assets will more likely than not be realized. In making such a determination, the Company considers all available positive and negative evidence, including future reversals of existing taxable temporary differences, projected future taxable income, tax-planning strategies, and results of recent operations. In the event the Company determines that it would be able to realize its deferred assets in the future in excess of their net recorded amount, the Company would make an adjustment to the deferred tax asset valuation allowance, which would reduce the provision for income taxes.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Concentrations of Risk&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Credit Risk&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &#x2013; Financial instruments that potentially subject the Company to concentration of credit risk consisted primarily of cash and cash equivalents and accounts receivable from trade customers. The Company maintains its deposits of cash and cash equivalents at &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;three&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; domestic and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;four&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; international financial institutions. The Company is exposed to credit risk in the event of default by a financial institution to the extent that cash and cash equivalents are in excess of the amount insured by the Federal Deposit Insurance Corporation (&#x201c;FDIC&#x201d;) and other local country government agencies. The Company generally places its cash and cash equivalents with high-credit quality financial institutions. To date, the Company has not experienced any losses on its cash and cash equivalents. As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company had approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million, for which only $250,000 is insured under FDIC limits, $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;114,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, deposited with the Company&#x2019;s three domestic financial institutions.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Concentration of Accounts Receivable and Contract Assets&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &#x2013; At June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;one&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customer accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;32&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total accounts receivable and contract assets, net. At December 31, 2024, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;one&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customer accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;%, of the Com&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;pany&#x2019;s total accounts receivable and contract assets, net.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Concentration of Revenues&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &#x2013; For the three months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;one&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customer accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total revenues. For the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;three months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;two&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customers accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total revenues. For the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;one&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customer accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;31&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total revenues. For the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;two&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customers accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total revenues.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Concentration of Suppliers&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#x2013;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company relies on a limited number of suppliers and contract manufacturers. In particular, a single supplier is currently the sole manufacturer of the Company&#x2019;s proprietary sensors.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, there were no changes to the Company&#x2019;s significant accounting policies described in the Company&#x2019;s Annual Report on Form 10-K for the year ended December 31, 2024.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Recent Accounting Pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Improvements to Income Tax Disclosures&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In December 2023, the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) 2023-09, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Improvements to Income Tax Disclosures&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; (&#x201c;ASU 2023-09&#x201d;). ASU 2023-09 enhances the transparency of income tax disclosures, primarily by requiring public business entities to disclose on an annual basis, specific categories in the rate reconciliation tabular presentation, as well as by providing additional information for reconciling items that meet a quantitative threshold. The ASU also requires disaggregated disclosures of federal, state and foreign income taxes&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;paid. The new guidance is effective for fiscal years beginning after December 15, 2024. The Company does not expect implementation of the new guidance to have a material impact on its unaudited condensed consolidated financial statements.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Expense Disaggregation Disclosures&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In November 2024, the FASB issued ASU 2024-03, Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40), which requires disclosure of specific information about costs and expenses within relevant expense captions on the face of the income statement, qualitative descriptions for expense captions not specifically disaggregated quantitatively, and the total amount and definition of selling expenses for interim and annual reporting periods. This standard is effective for the Company&#x2019;s annual reporting period beginning January 1, 2027 and interim reporting periods beginning January 1, 2028 and should be applied on a retrospective or prospective basis, with early adoption permitted. We are currently assessing the impact of adopting this standard on our consolidated financial statements.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_5116675c-88bd-4593-aaeb-8383ac76723b">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Basis of Presentation&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The accompanying unaudited condensed consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#x201c;U.S. GAAP&#x201d;) and applicable rules and regulations of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) regarding interim financial reporting. Certain information and note disclosures normally included in the consolidated financial statements prepared in accordance with U.S. GAAP have been condensed or omitted pursuant to such rules and regulations. The unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries. All significant intercompany transactions have been eliminated upon consolidation.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The accompanying unaudited condensed consolidated financial statements and related financial information should be read in conjunction with the consolidated financial statements filed with the Company&#x2019;s Annual Report on Form 10-K for the year ended December 31, 2024 (&#x201c;Annual Report&#x201d;) filed with the SEC on March 31, 2025.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In the opinion of management, the accompanying unaudited condensed consolidated financial statements reflect all normal recurring adjustments necessary to present fairly the financial position, results of operations, comprehensive loss, stockholders&#x2019; equity and cash flows for the interim periods, but are not necessarily indicative of the results of operations or cash flows to be anticipated for the full year 2025 or any future period. The Company has evaluated subsequent events occurring after the date of the condensed consolidated financial statements for events requiring recording or disclosure in the unaudited condensed consolidated financial statements.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_7d6a86b2-d8f6-4b19-8494-2f0ed3b79af9">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Use of Estimates&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The preparation of unaudited condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and reported amounts of revenues and expenses during the reporting period. On an ongoing basis, management evaluates its significant estimates, including the valuation of accounts receivable, the lives and realization of tangible and intangible assets, contingent consideration liabilities, stock-based compensation expense, customer life, accounting for revenue recognition, contingent liabilities related to legal matters, and income taxes including deferred taxes and any related valuation allowance. In particular, the Company&#x2019;s contingent consideration liabilities are subject to significant estimates surrounding forecasts of certain revenues and other factors. Management bases its estimates on historical experience and on various other market-specific and relevant assumptions it believes to be reasonable under the circumstances. Actual results could differ from those estimates and such differences could be material to the Company&#x2019;s financial position and results of operations.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company records net deferred tax assets to the extent the Company believes these assets will more likely than not be realized. In making such a determination, the Company considers all available positive and negative evidence, including future reversals of existing taxable temporary differences, projected future taxable income, tax-planning strategies, and results of recent operations. In the event the Company determines that it would be able to realize its deferred assets in the future in excess of their net recorded amount, the Company would make an adjustment to the deferred tax asset valuation allowance, which would reduce the provision for income taxes.&lt;/span&gt;&lt;/p&gt;</us-gaap:UseOfEstimates>
    <us-gaap:ConcentrationRiskCreditRisk
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_b47084c9-b76b-44cb-9f98-d73c07613181">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Concentrations of Risk&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Credit Risk&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &#x2013; Financial instruments that potentially subject the Company to concentration of credit risk consisted primarily of cash and cash equivalents and accounts receivable from trade customers. The Company maintains its deposits of cash and cash equivalents at &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;three&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; domestic and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;four&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; international financial institutions. The Company is exposed to credit risk in the event of default by a financial institution to the extent that cash and cash equivalents are in excess of the amount insured by the Federal Deposit Insurance Corporation (&#x201c;FDIC&#x201d;) and other local country government agencies. The Company generally places its cash and cash equivalents with high-credit quality financial institutions. To date, the Company has not experienced any losses on its cash and cash equivalents. As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company had approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million, for which only $250,000 is insured under FDIC limits, $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;13,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;114,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, deposited with the Company&#x2019;s three domestic financial institutions.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Concentration of Accounts Receivable and Contract Assets&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &#x2013; At June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;one&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customer accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;32&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total accounts receivable and contract assets, net. At December 31, 2024, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;one&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customer accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;%, of the Com&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;pany&#x2019;s total accounts receivable and contract assets, net.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Concentration of Revenues&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &#x2013; For the three months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;one&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customer accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total revenues. For the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;three months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;two&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customers accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total revenues. For the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;one&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customer accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;31&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total revenues. For the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;two&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; customers accounted for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the Company&#x2019;s total revenues.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;text-decoration:underline solid;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Concentration of Suppliers&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#x2013;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company relies on a limited number of suppliers and contract manufacturers. In particular, a single supplier is currently the sole manufacturer of the Company&#x2019;s proprietary sensors.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, there were no changes to the Company&#x2019;s significant accounting policies described in the Company&#x2019;s Annual Report on Form 10-K for the year ended December 31, 2024.&lt;/span&gt;&lt;/p&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <ssti:NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained
      contextRef="C_d70b99de-ef29-4d77-837e-3a5e9606cfab"
      decimals="INF"
      id="F_1070a645-6a27-404a-9c5f-115127beab45"
      unitRef="U_Financialinstitution">3</ssti:NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained>
    <ssti:NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained
      contextRef="C_a005af1a-cfe2-47e5-ab4d-96d2aa948dbf"
      decimals="INF"
      id="F_ec710a93-39dd-4df9-be87-b4e77fb2b4c2"
      unitRef="U_Financialinstitution">4</ssti:NumberOfFinancialInstitutionsAtWhichCashDepositsAreMaintained>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_d3224397-a478-4405-9cae-d0a7bc0bb542"
      decimals="-5"
      id="F_ee57d82c-5fb8-40d6-a749-359d157124cf"
      unitRef="U_USD">7600000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_72be6c25-daa0-44d6-bfd9-63a676764a38"
      decimals="-3"
      id="F_9b406c8f-78dc-49eb-9d2c-c4e42f423c42"
      unitRef="U_USD">13000000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="C_d3fed023-ce0a-450c-b631-1e94b2dc6f6b"
      decimals="-3"
      id="F_76b58b50-90b7-4742-8fe8-61e3c5edbdac"
      unitRef="U_USD">114000000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <ssti:NumberOfCustomers
      contextRef="C_7dd5e880-15ee-439c-a081-48807c99f4d9"
      decimals="INF"
      id="F_c8a25a97-61ba-48de-bde3-b12a38e0941b"
      unitRef="U_Customers">1</ssti:NumberOfCustomers>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_d8a3f401-5d03-47da-a1dd-dd4700aefc11"
      decimals="2"
      id="F_fbc9b971-bce2-4edc-a287-a80d09af46d9"
      unitRef="U_pure">0.32</us-gaap:ConcentrationRiskPercentage1>
    <ssti:NumberOfCustomers
      contextRef="C_8345288f-b24e-4e5d-b67d-4ac2b933db67"
      decimals="INF"
      id="F_9a38eeee-ea4b-409d-92c3-2eb42066ae40"
      unitRef="U_Customers">1</ssti:NumberOfCustomers>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_77ec4fa8-fb33-4d07-9983-a7629bc33655"
      decimals="2"
      id="F_a2b4eeaf-3a95-4fec-92e2-a8a80ab62999"
      unitRef="U_pure">0.19</us-gaap:ConcentrationRiskPercentage1>
    <ssti:NumberOfCustomers
      contextRef="C_9755d019-a7ad-4033-a69e-2ca9947613cc"
      decimals="INF"
      id="F_cc00f575-c718-4de6-a25b-950eff1034d2"
      unitRef="U_Customer">1</ssti:NumberOfCustomers>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_50d9bb12-07c5-4a66-a1a2-f5d4a776d234"
      decimals="2"
      id="F_7c19274e-700d-47eb-b09a-88da606bd6e9"
      unitRef="U_pure">0.25</us-gaap:ConcentrationRiskPercentage1>
    <ssti:NumberOfCustomers
      contextRef="C_2a47e2d2-2a27-4683-a6ce-ecf2fb10345c"
      decimals="INF"
      id="F_f6900e28-ca05-41ee-80f5-99cfd42eb92c"
      unitRef="U_Customer">2</ssti:NumberOfCustomers>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_dfaa0b2a-742a-40b6-972e-3a8f2f0452db"
      decimals="2"
      id="F_fe290781-5db9-4f7a-a43f-7f140e058237"
      unitRef="U_pure">0.25</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_ad6c65f7-513f-4b42-8285-821d5072e5eb"
      decimals="2"
      id="F_7558ef42-e22a-484f-8bf5-6a9c93a97e7f"
      unitRef="U_pure">0.10</us-gaap:ConcentrationRiskPercentage1>
    <ssti:NumberOfCustomers
      contextRef="C_351a4708-d169-4833-a2ad-3c11985baa77"
      decimals="INF"
      id="F_e829b200-2f50-4ed5-bd73-ee7a1d176245"
      unitRef="U_Customer">1</ssti:NumberOfCustomers>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_1896f14a-ab9b-4a3c-9182-f094c6bccbb8"
      decimals="2"
      id="F_20a9e66f-9f2d-41ce-b3f2-579975d7f01c"
      unitRef="U_pure">0.31</us-gaap:ConcentrationRiskPercentage1>
    <ssti:NumberOfCustomers
      contextRef="C_b244f1c6-23ec-487a-9bf2-4175fb678f69"
      decimals="INF"
      id="F_39499b4e-2c28-45af-b133-9271efb25a20"
      unitRef="U_Customer">2</ssti:NumberOfCustomers>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_33e41d3e-87d3-497f-a430-566dae1e6dde"
      decimals="2"
      id="F_241db130-19a2-479e-b636-46cf684f18c3"
      unitRef="U_pure">0.26</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="C_915e6b69-ee02-4a74-8eed-225a9f58ae75"
      decimals="2"
      id="F_78c5845d-dbf9-453c-b597-3f25d580bfb9"
      unitRef="U_pure">0.10</us-gaap:ConcentrationRiskPercentage1>
    <ssti:RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_bd109b57-3b95-4844-9a39-5491daf846dd">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Recent Accounting Pronouncements&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Improvements to Income Tax Disclosures&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In December 2023, the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) 2023-09, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Improvements to Income Tax Disclosures&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; (&#x201c;ASU 2023-09&#x201d;). ASU 2023-09 enhances the transparency of income tax disclosures, primarily by requiring public business entities to disclose on an annual basis, specific categories in the rate reconciliation tabular presentation, as well as by providing additional information for reconciling items that meet a quantitative threshold. The ASU also requires disaggregated disclosures of federal, state and foreign income taxes&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;paid. The new guidance is effective for fiscal years beginning after December 15, 2024. The Company does not expect implementation of the new guidance to have a material impact on its unaudited condensed consolidated financial statements.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Expense Disaggregation Disclosures&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In November 2024, the FASB issued ASU 2024-03, Income Statement - Reporting Comprehensive Income - Expense Disaggregation Disclosures (Subtopic 220-40), which requires disclosure of specific information about costs and expenses within relevant expense captions on the face of the income statement, qualitative descriptions for expense captions not specifically disaggregated quantitatively, and the total amount and definition of selling expenses for interim and annual reporting periods. This standard is effective for the Company&#x2019;s annual reporting period beginning January 1, 2027 and interim reporting periods beginning January 1, 2028 and should be applied on a retrospective or prospective basis, with early adoption permitted. We are currently assessing the impact of adopting this standard on our consolidated financial statements.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</ssti:RecentAccountingPronouncementsNotYetEffectivePolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_ec8c51a0-e4fa-4109-ad45-c3dae9db35d7">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 3. Revenue Related Disclosures&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The changes in deferred revenue were as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:47.51%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.822000000000001%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.142000000000001%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.602%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.602%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Beginning balance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;45,437&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;50,752&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;44,233&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;42,077&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;New billings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;21,943&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;24,887&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;50,362&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;57,924&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;Revenue recognized during the year from beginning balance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(15,533&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(19,550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(23,484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_567e21a0-9fe9-456e-832c-0ff085ea3142;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(29,051&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_06429d32-4537-4ebc-86cc-d19d6502fed4;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;Revenue recognized during the year from new billings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(8,317&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(6,658&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27,581&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;21,519&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Ending balance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;43,530&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;49,431&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;43,530&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;49,431&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The following table presents remaining performance obligations for contractually committed revenues as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025 (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:47.5%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.82%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.16%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.6%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.6%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_a7f7bb7e-1cb0-40b4-bfe3-75e936ee0852;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Remainder of 2025&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;30,049&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_8c796ba5-126f-4c87-bca3-8bedf08160f5;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2026&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;41,462&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_2fc23526-7ba6-46e0-9ebd-5e8619fff34b;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;24,201&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_8bfe4752-f28e-4d06-a7bb-d5cf53a2fee9;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,214&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;99,926&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The timing of certain revenue recognition included in the table above is based on estimates of go-live dates for contracts not yet live. Contractually committed revenue includes deferred revenue as of June 30, 2025 and amounts under contract that will be invoiced after June 30, 2025.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the three months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized revenues of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from customers in the United States, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from customers in the Bahamas, South Africa and South America. During the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;three months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized revenues of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from customers in the United States, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from customers in the Bahamas, South Africa &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;and Uruguay.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized revenues of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;52.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from customers in the United States, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from customers in the Bahamas, South Africa and South America. During the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized revenues of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;51.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from customers in the United States, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from customers in the Bahamas, South Africa&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and Uruguay.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the three months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized revenues of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from monthly subscription, maintenance and support services, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;from professional software development services. During&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;three months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized revenues of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from monthly subscription, maintenance and support services, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from professional software development services.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized revenues of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;53.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from monthly subscription, maintenance and support services, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.7&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from professional software development services. During the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized revenues of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;50.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from monthly subscription, maintenance and support services, and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million from professional software development services.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the six months ended June 30, 2025, the Company recognized approximately $4.3 million of catch-up revenue comprising approximately $3.5 million of catch-up revenue during the three months ended March 31, 2025 based on two 3-year contract renewals with New York City Police Department and $0.8 million of catch-up revenue from various customers during the three months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_658b5498-c302-4135-b217-7a9115edda34">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The changes in deferred revenue were as follows (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:47.51%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.822000000000001%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.142000000000001%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.602%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.602%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Beginning balance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;45,437&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;50,752&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;44,233&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;42,077&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;New billings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;21,943&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;24,887&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;50,362&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;57,924&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;Revenue recognized during the year from beginning balance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(15,533&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(19,550&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(23,484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_567e21a0-9fe9-456e-832c-0ff085ea3142;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(29,051&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_06429d32-4537-4ebc-86cc-d19d6502fed4;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;&#160;Revenue recognized during the year from new billings&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(8,317&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(6,658&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27,581&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;21,519&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Ending balance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;43,530&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;49,431&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;43,530&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;49,431&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_6262b1a1-0e4b-46cc-a71a-cb9878a692b5"
      unitRef="U_USD">44233000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_762ff647-a9f4-4b74-aa5c-acc10546ba06"
      decimals="-3"
      id="F_5bf9563d-e836-414e-9f9d-76366309d20b"
      unitRef="U_USD">42077000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_a269551d-a8c8-4d23-89a7-6e4c202e785c"
      unitRef="U_USD">50362000</us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress>
    <us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_ec457fb8-ea24-4716-a81b-7c2644660d61"
      unitRef="U_USD">57924000</us-gaap:ContractWithCustomerLiabilityCumulativeCatchUpAdjustmentToRevenueChangeInMeasureOfProgress>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="C_96416f51-012b-433d-9156-117993e161be"
      decimals="-3"
      id="F_b6044674-c8db-4cb7-9d15-a87aa9c35b67"
      unitRef="U_USD">27581000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="C_3fe7103e-4236-4c29-ad82-c866c95265dc"
      decimals="-3"
      id="F_97cc1b95-00f1-4f55-be7c-ab2abf732bab"
      unitRef="U_USD">21519000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_add1fca3-4d1a-449a-add0-27c0a6bdce42"
      unitRef="U_USD">43530000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:ContractWithCustomerLiability
      contextRef="C_f96e3db2-b7dc-492f-b625-42945641180e"
      decimals="-3"
      id="F_9c94cbd3-afe0-4151-a5e2-84f339c1cae7"
      unitRef="U_USD">49431000</us-gaap:ContractWithCustomerLiability>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_2a197e4a-13a6-4bda-8ce3-36ddccde79d1">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The following table presents remaining performance obligations for contractually committed revenues as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025 (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:47.5%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.82%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.16%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.6%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.6%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_a7f7bb7e-1cb0-40b4-bfe3-75e936ee0852;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Remainder of 2025&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;30,049&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_8c796ba5-126f-4c87-bca3-8bedf08160f5;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2026&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;41,462&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_2fc23526-7ba6-46e0-9ebd-5e8619fff34b;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;24,201&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span&gt;&lt;span style="-sec-ix-hidden:F_8bfe4752-f28e-4d06-a7bb-d5cf53a2fee9;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,214&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;99,926&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTableTextBlock>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="C_7a929952-acd3-4997-96c2-997008fd538d"
      decimals="-3"
      id="F_60e93dcb-6817-4223-b079-3b812587f364"
      unitRef="U_USD">30049000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="C_5e746d1b-74a7-41a0-9a82-2d26677e3e66"
      decimals="-3"
      id="F_2d10c0dd-9a9d-43ef-9bfe-936044fd2f95"
      unitRef="U_USD">41462000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="C_937b7985-9731-45a1-9693-d6991a28d143"
      decimals="-3"
      id="F_1c378798-cc4d-42f7-8220-f7d547fe53a0"
      unitRef="U_USD">24201000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="C_6a737722-6953-44ed-9b87-0fc316b7583e"
      decimals="-3"
      id="F_68e2c961-392a-4b9f-8f4e-e615a26eeeac"
      unitRef="U_USD">4214000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_bb1fc924-3ba8-4822-908b-499d84d77e2a"
      unitRef="U_USD">99926000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:Revenues
      contextRef="C_22aa61a3-8fa4-42c7-b408-70251d47271f"
      decimals="-5"
      id="F_65a10300-0d1d-48f2-8ad2-b497a4a89d09"
      unitRef="U_USD">25200000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_ddb499ef-e435-4cab-afb6-2b74e0ca95d8"
      decimals="-5"
      id="F_c7286136-30fd-4c59-9c3e-8131c5c46255"
      unitRef="U_USD">700000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_c2065de9-2d2f-4aaa-aa43-35a44822e36b"
      decimals="-5"
      id="F_fa34c632-1602-450f-8338-30abde0f20c7"
      unitRef="U_USD">700000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_d9ea2a4c-a7c9-4999-9c09-7780c0d2dd13"
      decimals="-5"
      id="F_14a67e29-fd7a-4b46-a819-be858c64424a"
      unitRef="U_USD">700000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_166b3beb-19d4-44aa-9ab6-0df3e63a7b5a"
      decimals="-5"
      id="F_468ce644-7b95-46ac-ba3b-8fb1f7902f50"
      unitRef="U_USD">26300000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_e67bcbab-2624-4827-9322-ca0e84ef22a0"
      decimals="-5"
      id="F_2cd56acc-042d-430a-af10-e20d0562d467"
      unitRef="U_USD">700000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_44896582-2b1e-43a6-8e05-605d41df94b8"
      decimals="-5"
      id="F_cc9053b8-c53a-441f-8bd0-8e439ad00798"
      unitRef="U_USD">700000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_32b8e83f-80a4-49d4-87d5-467104f9eb29"
      decimals="-5"
      id="F_e0987350-05fd-4b1c-bd11-a62df0a4d152"
      unitRef="U_USD">52700000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_27fec0a5-2d60-44c0-9d6e-7e43578f994d"
      decimals="-5"
      id="F_3df0aabe-708d-406a-b776-191536d61c63"
      unitRef="U_USD">1500000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_dda0052b-510e-4f91-9dc3-73cdc2c7440a"
      decimals="-5"
      id="F_d32e6553-8aeb-450b-8916-ccfb0e932285"
      unitRef="U_USD">1500000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_4f608cb9-9280-445a-ad3b-70370903c390"
      decimals="-5"
      id="F_e1c16cd6-3170-48ef-b7bc-df80399f9ea9"
      unitRef="U_USD">1500000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_7f9f80e7-661d-49bf-b9fb-979f3caa3301"
      decimals="-5"
      id="F_d571ce8d-6e57-460e-9f78-ac28140cfb3b"
      unitRef="U_USD">51100000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_e6fb1587-9845-4286-be93-e93b57f7c145"
      decimals="-5"
      id="F_7a22979b-945b-46f6-aa38-4ff0b7fe8f1c"
      unitRef="U_USD">1300000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_23af2f6d-72c9-4042-bbd5-52b6b7bcc0b6"
      decimals="-5"
      id="F_7d880e2a-bf70-43d7-b8a3-6565eee4dd8a"
      unitRef="U_USD">1300000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_4d2f56af-f39c-42e6-b0c1-a3f8fdfe2033"
      decimals="-5"
      id="F_b4216c8b-2a82-418f-9575-d95d12bf5c8d"
      unitRef="U_USD">25600000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_046126a1-3c94-4af1-8c5c-9801b50dc97c"
      decimals="-5"
      id="F_7187e4ef-d6fe-4b84-93f1-871125139379"
      unitRef="U_USD">300000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_c8f54555-5aaa-40a1-a85a-cad3e23ed1e0"
      decimals="-5"
      id="F_8edb45b9-33d4-415c-b8dd-8c26e577a5ae"
      unitRef="U_USD">26000000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_6e80f8e2-8d55-4935-bdd6-4752c95a09d1"
      decimals="-5"
      id="F_3731a8dc-40a9-4f01-b36a-37da7ba6304f"
      unitRef="U_USD">1000000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_4857efeb-ac76-497f-9467-da928e644e40"
      decimals="-5"
      id="F_b37c2c54-32bc-4381-915d-80c3b4aa3c20"
      unitRef="U_USD">53600000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_0d796143-eb6d-410a-b76c-2b68e5f1b5f4"
      decimals="-5"
      id="F_b0458ece-bc98-4355-baaf-07695c51d876"
      unitRef="U_USD">700000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_4bb40e2c-76d4-4c6d-b476-8b2fe247ccc5"
      decimals="-5"
      id="F_4edaffa4-d16f-4592-82a3-62546953bc5a"
      unitRef="U_USD">50600000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_482c1ac1-0b50-47a3-96ba-d25d4eed94a8"
      decimals="-5"
      id="F_2a8cace5-836d-4daa-a4c8-0dffe63d4a76"
      unitRef="U_USD">1800000</us-gaap:Revenues>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_076b052b-f0a0-472f-8144-24c832d07026">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 4. Fair Value Measurements&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In August 2023, the Company estimated the fair value of the contingent consideration liability associated with its acquisition of SafePointe, LLC (&#x201c;SafePointe&#x201d;) to be $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million as of the acquisition date, using a Monte Carlo simulation approach with asset and revenue volatility of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;76.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% and &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;%, respectively. This fair value measurement is classified as Level III within the fair value hierarchy as prescribed by ASC 820, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Fair Value Measurement&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;As of December 31, 2023, the Company evaluated the contingent consideration related to the acquisition of SafePointe based on estimated SafePointe revenue and adjusted the consideration to $0.6 million. During the first half of 2024, the Company determined the contingent consideration was not probable of being earned resulting in the fair value of contingent consideration liabilities as of June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and 2024 being &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;nil&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;. Accordingly, the Company recognized a change in fair value of contingent consideration of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.6&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million during the three and six months ended June 30, 2024. There were &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; changes in the fair value of contingent consideration during the three and six months ended June 30, 2025.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;There were &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; transfers into or out of Level III during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025 and 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company also has $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million in a money market fund. The fair value measurement was classified as Level I within the fair value hierarchy as prescribed by Accounting Standards Codification 820-10-35-37 (&#x201c;ASC 820, &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Fair Value Measuremen&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;t&#x201d;).&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company records its financial assets and liabilities at fair value. The carrying amounts of certain of the Company&#x2019;s financial instruments, including cash, trade and other receivables, net, and accounts payable, approximate their fair value due to their short maturities.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure
      contextRef="C_b6f85494-a302-4f08-9124-86d1d433ed58"
      decimals="-5"
      id="F_ea3f31a9-ff43-4346-b09a-9a8c3b31d66e"
      unitRef="U_USD">3000000</us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure>
    <ssti:PercentageOfAssetsFairValueAdjustment
      contextRef="C_ba843d94-b9c2-4c0a-84df-c76400a718c6"
      decimals="3"
      id="F_aede876e-9f8f-4259-be52-7900c21bb6e7"
      unitRef="U_pure">0.761</ssti:PercentageOfAssetsFairValueAdjustment>
    <ssti:PercentageOfRevenueVolatility
      contextRef="C_ba843d94-b9c2-4c0a-84df-c76400a718c6"
      decimals="3"
      id="F_396727fd-5e48-43bc-8aa7-b23cf4c49fff"
      unitRef="U_pure">0.258</ssti:PercentageOfRevenueVolatility>
    <us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure
      contextRef="C_264d7113-d930-418b-8965-90b459e35062"
      decimals="-6"
      id="F_64517bc6-360f-40b7-b432-deeb347c5216"
      unitRef="U_USD">0</us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure>
    <us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure
      contextRef="C_7b580e4b-0c13-4633-9238-a898326d3e82"
      decimals="-6"
      id="F_496d6932-e665-4b02-9fc6-454faa184358"
      unitRef="U_USD">0</us-gaap:ContingentConsiderationClassifiedAsEquityFairValueDisclosure>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease
      contextRef="C_f41fd3f7-c39c-4d45-8d83-44a10cce6a89"
      decimals="INF"
      id="F_471b0428-b4bf-4caa-93fe-721b8aea17ef"
      unitRef="U_USD">0.6</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease
      contextRef="C_3c079ac5-86da-4a71-beff-90d2eacf323d"
      decimals="INF"
      id="F_cae25da3-6b06-46d9-a2fb-f4d4d4c85f92"
      unitRef="U_USD">0.6</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease
      contextRef="C_30b254ec-8bda-46d1-bea5-ce715bb8ad01"
      decimals="INF"
      id="F_a91025c2-cb81-4262-9bc0-786b7a872bf4"
      unitRef="U_USD">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease
      contextRef="C_aec290e2-452e-40e9-bb3e-9ffd13a9ac4e"
      decimals="INF"
      id="F_22955ac9-8074-4fd8-bd35-f0228fd6b0d7"
      unitRef="U_USD">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityPeriodIncreaseDecrease>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="INF"
      id="F_ac6cd9c8-0949-4f49-bf9c-cb29556c0455"
      unitRef="U_USD">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet>
    <us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="INF"
      id="F_153689b1-5948-42fd-a012-82d207309000"
      unitRef="U_USD">0</us-gaap:FairValueMeasurementWithUnobservableInputsReconciliationRecurringBasisLiabilityTransfersNet>
    <us-gaap:MoneyMarketFundsAtCarryingValue
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-5"
      id="F_5d1ccc3f-303f-486b-b40b-c973217b59d3"
      unitRef="U_USD">6200000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_0e892297-f9f0-40a4-a6d5-9734c90b335e">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 5. Intangible Assets, Net&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Intangible assets consist of the following (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:40.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.28%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-Average Amortization Period  (in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Gross&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Customer relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,470&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,226&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;18,244&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Acquired software technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,340&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,766&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,574&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Patents and intellectual property&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,081&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,505&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;576&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,228&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;872&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;Total intangible assets, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;45,991&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,725&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;31,266&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="font-size:11pt;font-family:'Calibri',sans-serif;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:40.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.28%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-Average Amortization Period  (in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Gross&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Customer relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,470&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,307&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,163&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Acquired software technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,340&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,429&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Patents and intellectual property&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,411&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;657&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,167&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;933&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;Total intangible assets, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;45,978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,796&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;33,182&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Intangible amortization expense was approximately $0.9 million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;three months ended June 30, 2025 and 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, respectively. Intangible amortization expense was approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1.9&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million for both of the six-month periods ended June 30, 2025 and 2024.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The following table presents future intangible asset amortization as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025 (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:40.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.28%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Remainder of 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,899&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,809&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,809&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,758&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,341&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;31,266&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_e4d62f2a-f1b1-4559-8023-14adb394fcf1">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Intangible assets consist of the following (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:40.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.28%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-Average Amortization Period  (in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Gross&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Customer relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,470&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,226&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;18,244&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Acquired software technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,340&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,766&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;11,574&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Patents and intellectual property&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,081&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,505&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;576&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,228&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;872&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;Total intangible assets, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;45,991&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,725&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;31,266&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:40.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.28%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="10" style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-Average Amortization Period  (in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Gross&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Accumulated Amortization&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Customer relationships&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,470&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,307&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,163&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Acquired software technology&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16,340&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,911&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,429&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Patents and intellectual property&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,068&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,411&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;657&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Tradename&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:left;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,100&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,167&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;933&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;Total intangible assets, net&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;45,978&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,796&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;33,182&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_8a04306d-3613-41ea-b305-0cc45348992f"
      id="F_9e95ae57-d157-4509-856e-b7871a835650">P14Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_8a04306d-3613-41ea-b305-0cc45348992f"
      decimals="-3"
      id="F_e5693057-2637-4323-ab2f-9dfc33a23286"
      unitRef="U_USD">25470000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_8a04306d-3613-41ea-b305-0cc45348992f"
      decimals="-3"
      id="F_0bc1423f-7537-4386-9fa8-28cbca5a8358"
      unitRef="U_USD">7226000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_8a04306d-3613-41ea-b305-0cc45348992f"
      decimals="-3"
      id="F_6519e25a-be11-45ec-9894-1599bb984308"
      unitRef="U_USD">18244000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_d802c174-e7fa-4925-b164-f60af41b245f"
      id="F_ea2f4710-930e-4327-bb3b-900fa793ddf2">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_d802c174-e7fa-4925-b164-f60af41b245f"
      decimals="-3"
      id="F_0644c79d-28ee-4d4f-a5ee-bf755e5808be"
      unitRef="U_USD">16340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_d802c174-e7fa-4925-b164-f60af41b245f"
      decimals="-3"
      id="F_c8148346-5a73-43cd-875c-1f9d6cbc6b05"
      unitRef="U_USD">4766000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_d802c174-e7fa-4925-b164-f60af41b245f"
      decimals="-3"
      id="F_d3ff5678-30d0-4988-b769-b69aa11d0e18"
      unitRef="U_USD">11574000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1"
      id="F_34ec3d32-1a87-4d78-8184-8c479cbacdb7">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1"
      decimals="-3"
      id="F_101c4436-39f2-496b-8448-04d3fc4e6366"
      unitRef="U_USD">2081000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1"
      decimals="-3"
      id="F_9758df31-0996-4f5d-ae11-b2babeada65f"
      unitRef="U_USD">1505000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_cc7ac4a8-be3b-4e35-ad92-69e67d4e88f1"
      decimals="-3"
      id="F_bea738b2-c745-44f1-b77a-ad940b16dd25"
      unitRef="U_USD">576000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_49396b45-f68b-49b4-9d4b-7b28e5495469"
      id="F_08b793df-7f23-4c4c-a6ea-413e94bb7b0c">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_49396b45-f68b-49b4-9d4b-7b28e5495469"
      decimals="-3"
      id="F_3087e2dd-d2f6-450b-97e2-de21c2c8c84f"
      unitRef="U_USD">2100000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_49396b45-f68b-49b4-9d4b-7b28e5495469"
      decimals="-3"
      id="F_b9e2e764-b1e7-477c-b35a-79e7b7e8f99b"
      unitRef="U_USD">1228000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_49396b45-f68b-49b4-9d4b-7b28e5495469"
      decimals="-3"
      id="F_018e1f17-62f2-4ca1-8ebd-a0343cc1dcc4"
      unitRef="U_USD">872000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_79123efe-1975-4277-b1bd-cc73d6842cfe"
      unitRef="U_USD">45991000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_b2a1da04-d4fb-44b3-8acd-518499212297"
      unitRef="U_USD">14725000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_d61366e9-bbde-4aca-a172-e3370da78571"
      unitRef="U_USD">31266000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_aa784e85-d2ad-412c-aad8-fa57df245e2f"
      id="F_33d62697-2649-49fd-8b0d-fb51d9eda815">P14Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_aa784e85-d2ad-412c-aad8-fa57df245e2f"
      decimals="-3"
      id="F_4556d4dd-9836-44b8-a07b-f4df878de63a"
      unitRef="U_USD">25470000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_aa784e85-d2ad-412c-aad8-fa57df245e2f"
      decimals="-3"
      id="F_a4cfc775-b769-43cc-8f86-aaba521fea31"
      unitRef="U_USD">6307000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_aa784e85-d2ad-412c-aad8-fa57df245e2f"
      decimals="-3"
      id="F_3df35b8b-c3af-4b2c-af3a-98fe07a569af"
      unitRef="U_USD">19163000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990"
      id="F_30233abb-48a6-4dbf-aa92-7a778790cdd6">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990"
      decimals="-3"
      id="F_edef81a2-9f68-4109-a7ee-79c85314ff5c"
      unitRef="U_USD">16340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990"
      decimals="-3"
      id="F_953069aa-9317-43df-b8e5-dfe8446e5a73"
      unitRef="U_USD">3911000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_3a4fd7d7-53aa-454e-919d-b2296dc7c990"
      decimals="-3"
      id="F_4ce34004-8bde-4e72-b32f-a1a070b02362"
      unitRef="U_USD">12429000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_331903be-002f-464f-9997-7eca4ed0a3ae"
      id="F_768f8bd4-e768-4d1d-b4ca-13c7591dca33">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_331903be-002f-464f-9997-7eca4ed0a3ae"
      decimals="-3"
      id="F_c9f03220-dcbd-4025-be25-2955682414ff"
      unitRef="U_USD">2068000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_331903be-002f-464f-9997-7eca4ed0a3ae"
      decimals="-3"
      id="F_228ad155-141a-4552-bcdf-21d0ddb6a023"
      unitRef="U_USD">1411000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_331903be-002f-464f-9997-7eca4ed0a3ae"
      decimals="-3"
      id="F_69ebe2bf-147f-405b-90a8-c37b65dfae6f"
      unitRef="U_USD">657000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="C_f15479da-3aec-4335-9189-a02717a927bd"
      id="F_7d1863b0-c860-480b-9af8-7f13527be2c0">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_f15479da-3aec-4335-9189-a02717a927bd"
      decimals="-3"
      id="F_11f42e0e-749e-4433-810c-f7caa91256dd"
      unitRef="U_USD">2100000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_f15479da-3aec-4335-9189-a02717a927bd"
      decimals="-3"
      id="F_43d5fc39-ad02-44a4-8d0d-a15e55ecb5cc"
      unitRef="U_USD">1167000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_f15479da-3aec-4335-9189-a02717a927bd"
      decimals="-3"
      id="F_24029e40-2659-433e-9bf7-3b418b151113"
      unitRef="U_USD">933000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_20c8f21c-c3ea-45cf-a048-0b5bbb6fb7c3"
      unitRef="U_USD">45978000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_a383b06a-1f0c-4fa7-941c-3bde45ccd590"
      unitRef="U_USD">12796000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_5f69d698-06c4-4550-a730-aa08f7b1f5c5"
      unitRef="U_USD">33182000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-5"
      id="F_b372e3b1-b6cb-42a1-974d-ddd7f5b0ce54"
      unitRef="U_USD">1000000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-5"
      id="F_a40d913a-7b9f-44b5-8fed-2c806e30ecca"
      unitRef="U_USD">1900000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_b7f7a86e-2267-421e-bebf-0e31de78f9e3">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The following table presents future intangible asset amortization as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025 (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:40.46%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.28%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.68%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:12.3%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Remainder of 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,899&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2026&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,809&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2027&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,809&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2028&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,758&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,650&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Thereafter&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14,341&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&#160;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;31,266&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_cee05d38-4918-442b-b8f0-21f60d197c7f"
      unitRef="U_USD">1899000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseRemainderOfFiscalYear>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_f42dd826-33a7-4b19-9336-50e5d7fbbc5d"
      unitRef="U_USD">3809000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_11261417-85e0-411e-88ac-f9c29a6bc9da"
      unitRef="U_USD">3809000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_a1ace530-59ec-47fe-b5f7-ecb5133d17a7"
      unitRef="U_USD">3758000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_7a4a78ad-253d-4e06-9aac-4987e2bc2eb7"
      unitRef="U_USD">3650000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <ssti:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_aaf2d350-24ea-4ff5-a312-887e434e75b1"
      unitRef="U_USD">14341000</ssti:FiniteLivedIntangibleAssetExpectedAmortizationAfterYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_54308066-1268-4a43-9e6c-097c89f009b3"
      unitRef="U_USD">31266000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_80ecd192-6d46-41f5-bcf5-91da10082a5e">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 6. Details of Certain Condensed Consolidated Balance Sheet Accounts&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Accounts receivable and contract assets, net (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:64.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.96%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27,714&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Contract assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,573&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,104&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Allowance for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;544&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;275&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;30,743&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,464&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Prepaid expenses and other current assets (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:64.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.96%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Deferred commissions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,592&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,477&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Prepaid software and licenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,356&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,306&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Prepaid insurance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;154&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,069&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Short-term deposits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;384&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;581&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Other prepaid expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;330&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;448&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,816&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,881&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Other assets (long-term) (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:64.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.96%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Deferred commissions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Escrow claim&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;357&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;581&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;128&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,230&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,861&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Accrued expenses and other current liabilities (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:64.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.96%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Personnel-related accruals&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,410&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8,252&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Operating lease liabilities, current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;922&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;909&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Professional fees&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;169&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;137&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Sales/use tax payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;243&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;409&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;777&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,153&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,216&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;</us-gaap:SupplementalBalanceSheetDisclosuresTextBlock>
    <ssti:ScheduleOfAccountsReceivableAndContractAssetTableTextblock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_39303e87-cc1b-451d-8da2-6abf23d3a798">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Accounts receivable and contract assets, net (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:64.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.96%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Accounts receivable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27,714&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19,635&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Contract assets&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,573&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,104&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Allowance for credit losses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;544&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;275&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;30,743&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,464&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</ssti:ScheduleOfAccountsReceivableAndContractAssetTableTextblock>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_99bca13e-feaf-4534-9327-b75f8b8980e4"
      unitRef="U_USD">27714000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_f1e91dad-77cc-4027-b14a-12ad24170278"
      unitRef="U_USD">19635000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_029e8b29-f1ea-4f91-aac2-0e383eab4b87"
      unitRef="U_USD">3573000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_7b4e2520-86af-4937-8430-419902137ea7"
      unitRef="U_USD">6104000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <ssti:FinancingReceivableAllowanceForCreditLossesAdjustment
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_c5976b84-bbbf-4cea-b847-1d67dd01766f"
      unitRef="U_USD">544000</ssti:FinancingReceivableAllowanceForCreditLossesAdjustment>
    <ssti:FinancingReceivableAllowanceForCreditLossesAdjustment
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_55206f02-d962-468d-a3ff-5b07050df74f"
      unitRef="U_USD">275000</ssti:FinancingReceivableAllowanceForCreditLossesAdjustment>
    <ssti:AccountsReceivableAndContractAssetCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_86d4d050-76aa-422a-a382-a74075a8f528"
      unitRef="U_USD">30743000</ssti:AccountsReceivableAndContractAssetCurrent>
    <ssti:AccountsReceivableAndContractAssetCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_35ff736e-511a-4edd-a0a0-3b6b50ac2d02"
      unitRef="U_USD">25464000</ssti:AccountsReceivableAndContractAssetCurrent>
    <us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_51ecf922-f044-47ff-8a20-7f15df14f251">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Prepaid expenses and other current assets (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:64.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.96%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Deferred commissions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,592&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,477&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Prepaid software and licenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,356&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,306&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Prepaid insurance&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;154&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,069&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Short-term deposits&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;384&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;581&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Other prepaid expenses&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;330&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;448&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,816&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,881&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock>
    <us-gaap:DeferredCostsCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_077bcd2a-46e6-4ef7-a360-738252c06794"
      unitRef="U_USD">1592000</us-gaap:DeferredCostsCurrent>
    <us-gaap:DeferredCostsCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_1475fb7c-a791-4174-b4c1-27bf11683107"
      unitRef="U_USD">1477000</us-gaap:DeferredCostsCurrent>
    <ssti:PrepaidSoftwareAndLicensesCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_69292e55-0dc3-4af3-b8e6-2a47bc73504f"
      unitRef="U_USD">2356000</ssti:PrepaidSoftwareAndLicensesCurrent>
    <ssti:PrepaidSoftwareAndLicensesCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_d494ff84-1df0-4915-92bf-7c08a541ad4c"
      unitRef="U_USD">1306000</ssti:PrepaidSoftwareAndLicensesCurrent>
    <us-gaap:PrepaidInsurance
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_9a91a042-ffba-401c-8e73-d200ea1c9133"
      unitRef="U_USD">154000</us-gaap:PrepaidInsurance>
    <us-gaap:PrepaidInsurance
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_569c3555-08fc-457d-9ea8-326b29d82406"
      unitRef="U_USD">1069000</us-gaap:PrepaidInsurance>
    <ssti:ShortTermDeposits
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_dce7e1cb-f65a-4c42-9ca6-a3501cc1f94f"
      unitRef="U_USD">384000</ssti:ShortTermDeposits>
    <ssti:ShortTermDeposits
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_3184bed7-eb4b-46d0-ac68-5a533dcd6b87"
      unitRef="U_USD">581000</ssti:ShortTermDeposits>
    <us-gaap:OtherPrepaidExpenseCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_32e12f8e-5fc0-47eb-9944-21fa61a0649b"
      unitRef="U_USD">330000</us-gaap:OtherPrepaidExpenseCurrent>
    <us-gaap:OtherPrepaidExpenseCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_80e94d1d-d558-445d-9d00-0cc28ba3fd33"
      unitRef="U_USD">448000</us-gaap:OtherPrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_eb8e1b84-b778-483c-a9e4-76249d6c9a63"
      unitRef="U_USD">4816000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_fc1ab171-14a8-4f3e-904d-cdccb5a6ab6e"
      unitRef="U_USD">4881000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_245537a8-59aa-4881-a725-c385d2c8939b">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Other assets (long-term) (in thousands):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:64.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.96%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Deferred commissions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,742&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Escrow claim&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;357&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;581&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;128&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,230&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,861&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;</us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock>
    <us-gaap:DeferredCosts
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_345713be-9728-4f9f-9ec6-1f65be5a6896"
      unitRef="U_USD">2742000</us-gaap:DeferredCosts>
    <us-gaap:DeferredCosts
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_d016086e-3c09-4474-8c06-edf6b032dcbf"
      unitRef="U_USD">3152000</us-gaap:DeferredCosts>
    <ssti:EscrowClaimReceivable
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_9620e378-fb33-43ed-8f0c-c9fe65a5c50a"
      unitRef="U_USD">357000</ssti:EscrowClaimReceivable>
    <ssti:EscrowClaimReceivable
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_de289f6a-eeba-40fc-884a-37ba886f9b0b"
      unitRef="U_USD">581000</ssti:EscrowClaimReceivable>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_a0390392-7d63-4d99-b6d4-9734cf47f298"
      unitRef="U_USD">131000</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsMiscellaneousNoncurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_a9de7ede-bc4d-4ac5-bfea-b5038f1da4c4"
      unitRef="U_USD">128000</us-gaap:OtherAssetsMiscellaneousNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_5bf80fe4-170c-4ce5-9980-1bb8432e157c"
      unitRef="U_USD">3230000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_12ab82b1-7ae7-4fa0-9e7c-eced83a8b5e6"
      unitRef="U_USD">3861000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_150f1275-99b3-4cfa-9026-65433a87fe99">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Accrued expenses and other current liabilities (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:64.44%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.96%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:14.8%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;December 31,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;text-align:left;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Personnel-related accruals&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5,410&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;8,252&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Operating lease liabilities, current&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;922&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;909&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Professional fees&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;169&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;137&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Sales/use tax payable&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;243&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;141&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Other&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;409&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;777&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,153&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;10,216&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedEmployeeBenefitsCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_ad7f8253-8de9-44a4-ac4d-70f0739f4541"
      unitRef="U_USD">5410000</us-gaap:AccruedEmployeeBenefitsCurrent>
    <us-gaap:AccruedEmployeeBenefitsCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_d9521bf9-c9ba-4ebd-a463-574b6aa42e9c"
      unitRef="U_USD">8252000</us-gaap:AccruedEmployeeBenefitsCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_28050ae7-14c6-4b05-927f-90566edb7377"
      unitRef="U_USD">922000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_1c651566-62c9-469c-9a51-5777002dfdf5"
      unitRef="U_USD">909000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_91a9738c-6b5a-4cd2-bfe8-6424a6891da2"
      unitRef="U_USD">169000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:AccruedProfessionalFeesCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_02210f61-cbab-4d74-a57f-6e245b14c4ef"
      unitRef="U_USD">137000</us-gaap:AccruedProfessionalFeesCurrent>
    <us-gaap:SalesAndExciseTaxPayableCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_43c8bf46-a69b-4a67-a452-e89d52e9e6d2"
      unitRef="U_USD">243000</us-gaap:SalesAndExciseTaxPayableCurrent>
    <us-gaap:SalesAndExciseTaxPayableCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_b803c6ea-983e-4bad-bf1d-d79600f3cafd"
      unitRef="U_USD">141000</us-gaap:SalesAndExciseTaxPayableCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_89bab162-4b23-4697-915a-b2b638850d4f"
      unitRef="U_USD">409000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_fb470d5c-6c9a-423e-a51a-253fd16b78c3"
      unitRef="U_USD">777000</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_5acbdfc3-2d2a-4e94-9663-5c376c529f50"
      unitRef="U_USD">7153000</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:AccruedLiabilitiesAndOtherLiabilities
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="-3"
      id="F_a5c156f1-9ff6-495b-9054-17777c897f90"
      unitRef="U_USD">10216000</us-gaap:AccruedLiabilitiesAndOtherLiabilities>
    <us-gaap:RelatedPartyTransactionsDisclosureTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_8c6ceb32-ed5c-4188-85a9-0241ef363672">&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 7. Related Party Transactions&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the three and six months ended June 30, 2025, the Company recognized approximately &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;18,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, respectively,&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; in revenues from SoundThinking Labs projects with charitable organizations that have received donations from one of the Company&#x2019;s former directors and from one of the Company&#x2019;s significant stockholders. During the three and six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company recognized approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;47,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;80,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, respectively, in revenues from such SoundThinking Labs projects.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;</us-gaap:RelatedPartyTransactionsDisclosureTextBlock>
    <us-gaap:Revenues
      contextRef="C_42592731-dd58-4d1e-a772-4aad8e45dd8a"
      decimals="0"
      id="F_81c37f55-df33-4fe6-a2d8-0ea0fbf7d9a3"
      unitRef="U_USD">7000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_2e8acf49-5b0f-4ec6-9d54-86be52d90e50"
      decimals="0"
      id="F_ec6f6950-f8b2-4f6b-aa4e-40d91f810d14"
      unitRef="U_USD">18000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_7b0882ee-fb75-4965-babb-4e2a0276df3b"
      decimals="0"
      id="F_ae8bde15-c3c0-4522-a374-00ca922a8349"
      unitRef="U_USD">47000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="C_7f307dc4-8f88-42cf-845e-32135157d801"
      decimals="0"
      id="F_2c4df855-c68e-48ac-90b0-ea4fdb4deb3b"
      unitRef="U_USD">80000</us-gaap:Revenues>
    <us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_92a1113d-4c41-4a82-9ae4-17f07688bd7d">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 8. Restructuring&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In the second quarter of 2024, the Company restructured its workforce and eliminated &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of its total headcount to more effectively allocate its resources and to reduce operational costs. Additionally, the Company terminated a building lease early for a location that was no longer in use.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Restructuring expense related to the workforce reduction during the three months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; amounted to $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million, consisting of cash expenditures for &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="-sec-ix-hidden:F_ac3bc36c-c6de-4913-9dbf-40bd9d6dc5bf;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;severance and other employee separation-related costs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;. Restructuring expenses related to the lease termination were $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.1&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million, comprising of early &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="-sec-ix-hidden:F_5676ee34-2e1d-48d3-a5fc-631384d2056b;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;termination fees and monthly rent&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;. These restructuring expenses were recorded in other expense, net, in the unaudited condensed consolidated statement of operations.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;As of June 30, 2024, net restructuring liabilities totaled approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million and were included in accrued expenses and other current liabilities on the Company's unaudited condensed consolidated balance sheet.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;There was &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; restructuring activity during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;.&lt;/span&gt;&lt;/p&gt;</us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="2"
      id="F_13d61d4b-3e7e-4cd0-8f0b-92d6c59d8167"
      unitRef="U_pure">0.03</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminatedPeriodPercent>
    <us-gaap:RestructuringCharges
      contextRef="C_ee5af4e5-51ad-43c8-bcf9-926cb7469ead"
      decimals="-5"
      id="F_94629a63-3abf-4578-8018-9fee28626512"
      unitRef="U_USD">300000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="C_fb6ff255-9e0d-49c9-9e01-1a8bdc17edb2"
      decimals="-5"
      id="F_0a837ce4-7414-4b46-bf2a-14df849e810b"
      unitRef="U_USD">100000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringReserveCurrent
      contextRef="C_bd3184cd-0e87-444d-88ae-9fcbbbb8c01f"
      decimals="-5"
      id="F_d5fd4bc1-4626-46ed-94ed-901064b0b6f1"
      unitRef="U_USD">200000</us-gaap:RestructuringReserveCurrent>
    <us-gaap:RestructuringCharges
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="INF"
      id="F_7189beda-551f-4028-89c7-379f303d55b0"
      unitRef="U_USD">0</us-gaap:RestructuringCharges>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_19cc751c-6fb1-4951-a006-f46ad9060b4f">&lt;p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 9. Stock Repurchase Program&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:8pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company repurchased 65,063 shares of its common stock at an average price of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14.92&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; per share for a total of $1.0 million under its stock repurchase program. During the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company repurchased &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;134,150&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; shares of its common stock at an average price of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;14.86&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; per share for a total of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2.0&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million under its stock repurchase program.&lt;/span&gt;&lt;/p&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:TreasuryStockAcquiredAverageCostPerShare
      contextRef="C_efff8137-a1c7-4c57-a0b2-029672737b52"
      decimals="2"
      id="F_4fcd9a48-eeaa-4be3-a342-f679708b27e5"
      unitRef="U_USDollarShare">14.92</us-gaap:TreasuryStockAcquiredAverageCostPerShare>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="C_d941df6c-f81f-4882-a6e7-ac57265797f8"
      decimals="INF"
      id="F_8a22fba0-7f34-4e68-a581-a3946395e800"
      unitRef="U_shares">134150</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:TreasuryStockAcquiredAverageCostPerShare
      contextRef="C_d941df6c-f81f-4882-a6e7-ac57265797f8"
      decimals="2"
      id="F_ef2839ba-eb14-4d89-b19c-ed787c1b0cea"
      unitRef="U_USDollarShare">14.86</us-gaap:TreasuryStockAcquiredAverageCostPerShare>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="C_d941df6c-f81f-4882-a6e7-ac57265797f8"
      decimals="-5"
      id="F_a75c1606-9c62-4b1e-bead-1e711c096f50"
      unitRef="U_USD">2000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_4bba14d5-26f1-440e-9490-a8594f2a205c">&lt;p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 10. Net Income (Loss) per Share&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The computation of basic net income (loss) per share is based on the weighted-average number of shares of common stock outstanding during each period. The computation of diluted net income (loss) per share is based on the weighted-average number of shares outstanding during the period plus, when their effect is dilutive, incremental shares consisting of shares subject to stock options, restricted stock units, employee stock purchase plan purchase rights and warrants.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The following table summarizes the computation of basic and diluted net income (loss) per share (in thousands, except share and per share data):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:39.4%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Numerator:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Net loss&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,120&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;752&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,604&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,661&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Denominator:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Weighted-average shares outstanding, basic and diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,712,191&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,792,952&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,680,456&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,781,910&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Net loss per share, basic and diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.06&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.36&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Th&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;e following potentially dilutive shares outstanding at the end of the periods presented were excluded in the calculation of diluted net loss per share as the effect would have been anti-dilutive:&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:52.08%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.18%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.18%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.18%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.38%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Options to purchase common stock&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,772,338&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,796,901&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,772,338&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,796,901&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Restricted stock units exercisable and expected to vest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,592,981&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,056,904&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,592,981&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,056,904&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Estimated number of shares issuable under 2017 ESPP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,385,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,878,929&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,385,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,878,929&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_fb960793-7ffb-45b5-9786-d0283875b6f8">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The following table summarizes the computation of basic and diluted net income (loss) per share (in thousands, except share and per share data):&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:39.4%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Numerator:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Net loss&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,120&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;752&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,604&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,661&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Denominator:&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Weighted-average shares outstanding, basic and diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,712,191&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,792,952&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,680,456&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;12,781,910&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Net loss per share, basic and diluted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.06&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.36&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.29&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_6a5f3559-5470-43b0-8fda-b49f9a5c4a36"
      unitRef="U_USD">-3120000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_68029a37-8736-459b-ad05-47b4cc605abd"
      unitRef="U_USD">-752000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_7d6d4fc1-a41e-4e44-86fe-cc93dffbae12"
      unitRef="U_USD">-4604000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_2b91d2a8-c12f-421c-82c7-33c19a34a785"
      unitRef="U_USD">-3661000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="0"
      id="F_f1b228d4-59f2-40fd-8de5-9cdeef42246b"
      unitRef="U_shares">12712191</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="0"
      id="F_4ac00e73-b267-4425-9043-1dbbc7d74f9a"
      unitRef="U_shares">12712191</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="0"
      id="F_729c6fe6-5452-4183-aee8-943993219160"
      unitRef="U_shares">12792952</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="0"
      id="F_d65b16df-7eee-4804-942e-5509821c844f"
      unitRef="U_shares">12792952</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="0"
      id="F_bbbcaff2-d0df-4cb0-a000-f7e73a9b3086"
      unitRef="U_shares">12680456</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="0"
      id="F_013fc88c-cd7c-4175-9c70-1e6a918704b9"
      unitRef="U_shares">12680456</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="0"
      id="F_c822d9a2-9353-4bf1-80ec-cf2b2ba2d779"
      unitRef="U_shares">12781910</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="0"
      id="F_ab9c9fa4-f3c0-4d96-ab93-3a352e8cf7d2"
      unitRef="U_shares">12781910</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="2"
      id="F_dbc35c5b-1eed-47f3-9ae5-890bf6c3edce"
      unitRef="U_USDollarShare">-0.24</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="2"
      id="F_0b347a1e-bafb-40a1-8c5e-eb83c75438c8"
      unitRef="U_USDollarShare">-0.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="2"
      id="F_4943d764-fff2-4d62-a894-3d448e65b654"
      unitRef="U_USDollarShare">-0.06</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="2"
      id="F_f92c1ccd-4c2c-48bc-8f76-3dcff44bab00"
      unitRef="U_USDollarShare">-0.06</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="2"
      id="F_3fb973ed-31e3-4c4a-9cd8-9d89452b0a73"
      unitRef="U_USDollarShare">-0.36</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="2"
      id="F_752101de-e560-4d6f-b0a9-1b6381f671e8"
      unitRef="U_USDollarShare">-0.36</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="2"
      id="F_2318c716-8232-4e11-a54f-1086d3f6ee7f"
      unitRef="U_USDollarShare">-0.29</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="2"
      id="F_81446afa-f677-4345-b8a7-77e1d1a9dc4a"
      unitRef="U_USDollarShare">-0.29</us-gaap:EarningsPerShareDiluted>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_ab008f3f-f390-4a62-8a08-633d8b524879">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Th&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;e following potentially dilutive shares outstanding at the end of the periods presented were excluded in the calculation of diluted net loss per share as the effect would have been anti-dilutive:&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:99.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:52.08%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.18%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.18%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.18%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.38%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Options to purchase common stock&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,772,338&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,796,901&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,772,338&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,796,901&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Restricted stock units exercisable and expected to vest&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,592,981&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,056,904&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,592,981&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,056,904&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Estimated number of shares issuable under 2017 ESPP&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;20,152&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;25,124&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,385,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,878,929&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,385,471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,878,929&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_00788857-046d-4c69-aa56-c18129ececda"
      decimals="INF"
      id="F_f8c8aa44-b424-477b-8aae-2f61e63834a5"
      unitRef="U_shares">1772338</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_152ee14b-042e-4ec9-b803-f42f5b52286c"
      decimals="INF"
      id="F_64f4abca-70ca-4a47-b0c0-26cf9c754aad"
      unitRef="U_shares">1796901</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_84044923-7b4d-400c-940b-2dbe23977c7f"
      decimals="INF"
      id="F_15cbba54-9ca5-4f7f-abe4-0b70d80f8242"
      unitRef="U_shares">1772338</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_4a6effc2-db48-4ed0-bc19-ca91fdc64c5c"
      decimals="INF"
      id="F_8fdaf8e2-1790-47bf-8a37-49ea573a57c3"
      unitRef="U_shares">1796901</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_11c952fc-f218-45d1-8ecb-1454c429f16a"
      decimals="INF"
      id="F_a3f47577-6119-49e9-b9d4-1a1f2f61d1c4"
      unitRef="U_shares">2592981</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_215c1c9a-7dc0-4581-a82e-4d67cd225feb"
      decimals="INF"
      id="F_c5a91913-ce1c-4bec-9edd-ec2f1c21ee8b"
      unitRef="U_shares">1056904</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_c44e46eb-f68f-427c-95df-22ed0f0f0042"
      decimals="INF"
      id="F_a201fe4d-f921-4917-9fef-d9e6f66670ae"
      unitRef="U_shares">2592981</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_a881e63b-df7d-4eb0-9ff0-ea878ddb79a4"
      decimals="INF"
      id="F_abf70cd2-480d-4ef0-afce-2ec3f34a064d"
      unitRef="U_shares">1056904</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="INF"
      id="F_6061b16b-4d1b-4032-8950-fe19be2b6c54"
      unitRef="U_shares">4385471</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="INF"
      id="F_7d9eece8-b50b-42d1-be17-79632a6e5a0c"
      unitRef="U_shares">2878929</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="INF"
      id="F_dfec9078-c610-4ca8-b2bc-e99759944aa9"
      unitRef="U_shares">4385471</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="INF"
      id="F_4789be40-5e9e-45be-9bc9-3627cbab1f2e"
      unitRef="U_shares">2878929</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_7faadfe2-9ca1-4eac-8830-fdeaa2df4e0d">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 11. Equity Incentive Plans&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Stock options&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;A summary of option activities under the 2005 Stock Plan, as amended in January 2010 and November 2012 (the &#x201c;2005 Plan&#x201d;) and 2017 Equity Incentive Plan (the &#x201c;2017 Plan&#x201d;) during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025 is as follows:&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:34.327%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.02%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.162%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.48%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.102%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.48%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.102%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.102%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.48%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.022%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Number&lt;br/&gt;of Options&lt;br/&gt;Outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Grant Date Fair Value per Option&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Aggregate Intrinsic Value Exercised (in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining Contractual term (in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Outstanding at December 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,774,388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26.62&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;95,275&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15.92&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9.59&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,104&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4.48&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;46&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;93,221&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;23.86&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Outstanding at June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,772,338&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Exercisable at June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,265,627&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27.89&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Vested and expected to vest at June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,772,338&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;951&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6.51&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Under an &#x201c;evergreen&#x201d; provision, the number of shares of common stock reserved for issuance under the 2017 Plan will automatically increase on &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;January 1&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; of each year, beginning on &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;January 1, 2018&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and ending on and including &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;January 1, 2027&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, by &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the total number of shares of the Company&#x2019;s common stock outstanding on December 31 of the preceding calendar year or a lesser number of shares determined by the Board. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;accordance with the evergreen provision,&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;number of shares of common stock reserved for issuance under the 2017 Plan was increased on January 1, 2025 by &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;631,724&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; shares, which was equal to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the total number of shares of common stock outstanding on December 31, 2024.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Restricted stock units&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:11pt;font-family:'Calibri',sans-serif;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;A summary of restricted stock unit (&#x201c;RSU&#x201d;) activities under the 2017 Plan during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025 is as follows:&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:46.589%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.54%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:15.703%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.02%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.063%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.02%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.063%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Number&lt;br/&gt;of RSUs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Grant Date Fair Value per RSU&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Aggregate Fair Value of RSUs Vested (in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Unvested RSUs at December 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;966,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19.04&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,852,388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16.10&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;174,891&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19.83&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,785&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;50,647&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16.89&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Unvested RSUs at June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,592,981&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16.93&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;Performance-based restricted stock units:&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the year ended December 31, 2024, the Company granted to members of the Company&#x2019;s management team RSU awards with performance-based vesting conditions (&#x201c;PSUs&#x201d;)&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, totaling &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;544,228&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; shares at a grant date fair value of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;17.74&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; per share, the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2026, based on &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2026, as &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. Compensation expense related to these awards was approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;three months ended June 30, 2025 and 2024&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, respectively. Compensation expense related to these awards was approximately $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.5&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025 and 2024, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company granted to members of the Company&#x2019;s management team PSUs of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;813,348&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; shares with a grant date fair value of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16.43&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; per share, the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2027, based on &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2027, as determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. As of June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;no&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; expense was recorded related to these PSUs as the achievement of the minimum target for 2027 was not probable of being met.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In February 2025, the Company introduced a PSU-based performance bonus plan (&#x201c;PSU Bonus Plan&#x201d;) for exempt employees. Under the PSU Bonus plan, employees may receive up to &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;133,261&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; shares with a grant date fair value of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15.12&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the closing stock price on the grant date, which vest in one installment on the certification date and occur as soon as administratively practicable following the end of 2025, based on the satisfaction of the Company obtaining certain performance criteria. As of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company determined a portion of the shares granted under the PSU Bonus Plan are probable of vesting and recorded $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.4&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million and $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.8&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million expense related to the PSU, for the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;three and six months ended June 30, 2025, respectively.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;During the six months ended June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company granted to members of the Company&#x2019;s leadership team PSUs of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;448,222&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; shares with a grant date fair value of $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15.51&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; per share,  the closing stock price on the grant date. These PSUs vest in one installment on the certification date, which shall occur as soon as administratively practicable following the end of 2026, based on &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;the satisfaction of revenue and Adjusted EBITDA performance goals for fiscal year 2026, as determined by the Compensation and Human Capital Committee of the Board of Directors of the Company. Compensation expense related to the PSUs is estimated each period based on the fair value of the target stock unit at the grant date and the most probable level of achievement of the performance conditions. As of June 30, 2025&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;, the Company determined a portion of the shares granted under the PSU Bonus Plan are probable of vesting and recorded $&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;0.3&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; million.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt;2017 Employee Stock Purchase Plan&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Under the 2017 ESPP, eligible employees may purchase shares of our common stock through payroll deductions that cannot exceed &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the employee&#x2019;s salary. &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The 2017 ESPP provides for a &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six-month&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; offering period. At the end of the purchase period, eligible employees are permitted to purchase shares of common stock at the lower of &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;85&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the fair market value at the beginning or end of the offering period subject to tax limitations on the total value of the purchase.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;2017 ESPP contains an &#x201c;evergreen&#x201d; provision that provides for an automatic annual share increase on &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;January 1&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; of each year, in an amount equal to the lesser of (1) &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;% of the total number of shares of common stock outstanding on December 31st of the preceding calendar year, (2) &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;150,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; shares or (3) such number of shares as determined by the Board. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;In accordance with the evergreen provision, the number of shares of common stock reserved for issuance under the 2017 ESPP was increased on January 1, 2025 by &lt;/span&gt;&lt;span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;150,000&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; shares. The number of shares available for grant under the 2017 ESPP was 675,768 as of &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;June 30, 2025.&lt;/span&gt;&lt;/p&gt;&lt;div style="font-size:10pt;font-family:Times New Roman;"&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Total stock-based compensation expense associated with the 2005 Plan, 2017 Plan and 2017 ESPP is recorded in the condensed consolidated statements of operations and was allocated as follows (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:39.4%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Cost of revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;620&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;399&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,268&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;839&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;574&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;584&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,165&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,185&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;444&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;303&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;837&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;605&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,203&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,860&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,975&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,444&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,841&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,146&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,073&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_3607ef5a-9a1b-481a-b04c-054181cfaf1b">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;A summary of option activities under the 2005 Stock Plan, as amended in January 2010 and November 2012 (the &#x201c;2005 Plan&#x201d;) and 2017 Equity Incentive Plan (the &#x201c;2017 Plan&#x201d;) during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025 is as follows:&lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:34.327%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.02%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.162%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.48%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.102%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.48%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.102%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.72%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:9.102%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.48%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:10.022%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Number&lt;br/&gt;of Options&lt;br/&gt;Outstanding&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Grant Date Fair Value per Option&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Aggregate Intrinsic Value Exercised (in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining Contractual term (in years)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Outstanding at December 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,774,388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26.62&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;95,275&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;15.92&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;9.59&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Exercised&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4,104&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;4.48&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;46&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Canceled&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;93,221&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;23.86&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Outstanding at June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,772,338&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Exercisable at June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,265,627&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;27.89&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Vested and expected to vest at June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,772,338&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;26.24&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;951&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6.51&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="INF"
      id="F_b45fc051-9c28-4778-9178-af9dd2f07fa9"
      unitRef="U_shares">1774388</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="C_81457c79-6544-4a8f-bbb2-9140fa31c5cd"
      decimals="2"
      id="F_16acd870-35fb-47e9-840a-3a4ebc1aa5d9"
      unitRef="U_USDollarShare">26.62</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="INF"
      id="F_0ca7ed4f-902a-492e-a02a-9398af126d1e"
      unitRef="U_shares">95275</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="2"
      id="F_6fac6d25-5217-4ca0-a004-766b578352d3"
      unitRef="U_USDollarShare">15.92</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="2"
      id="F_863e4d8b-1f05-4bda-99fb-82bb6753c1b2"
      unitRef="U_USDollarShare">9.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="INF"
      id="F_229c73da-100b-4dff-aef0-d2baa85b9815"
      unitRef="U_shares">4104</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="2"
      id="F_7d82820f-811e-4b5a-843c-2bb9d1ca137c"
      unitRef="U_USDollarShare">4.48</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_ec878692-4428-4c14-87db-45cb8b7a2663"
      unitRef="U_USD">46000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="INF"
      id="F_722f2da1-a747-48a2-aca8-a6769b431030"
      unitRef="U_shares">93221</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="2"
      id="F_237e0c59-f4f0-4bdb-9b86-847d5357492c"
      unitRef="U_USDollarShare">23.86</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="INF"
      id="F_938ab547-1e70-4c59-89c2-a5f5817dcb87"
      unitRef="U_shares">1772338</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="2"
      id="F_384ca838-d6cb-4fba-8dc7-278f403e59e0"
      unitRef="U_USDollarShare">26.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="INF"
      id="F_16a0862b-cda1-441a-8768-b0cf2e1e960a"
      unitRef="U_shares">1265627</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="2"
      id="F_1c334faa-ae71-43be-8352-ad1446cc7d2a"
      unitRef="U_USDollarShare">27.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="INF"
      id="F_f37be4d8-4706-4c11-af32-088a37354d20"
      unitRef="U_shares">1772338</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="2"
      id="F_7e8ac3a8-d766-4e02-9de9-1336e6b1270f"
      unitRef="U_USDollarShare">26.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="C_54bd9088-8c94-49db-a6cf-8aca17304d6c"
      decimals="-3"
      id="F_82dd8b10-b4c9-4119-a66c-c5aa6900a46f"
      unitRef="U_USD">951000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_25d36d36-c20c-4a3b-af72-2256f7a2ade0">P6Y6M3D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod
      contextRef="C_c499d9d7-4eb7-4b78-a59a-9048a418b043"
      id="F_b1c4d84e-3b72-40e0-b7ec-4d5e44bff122">--01-01</ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod>
    <ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate
      contextRef="C_c499d9d7-4eb7-4b78-a59a-9048a418b043"
      id="F_6ba4b5aa-7dff-428a-99cb-f8f6fceb90fe">2018-01-01</ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseStartDate>
    <ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate
      contextRef="C_c499d9d7-4eb7-4b78-a59a-9048a418b043"
      id="F_1f55fd42-f9f0-43bf-891d-da4782429b9d">2027-01-01</ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseEndDate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum
      contextRef="C_4ea795a4-c3a9-46c6-81e4-e011b345ce17"
      decimals="2"
      id="F_0a0b7bd2-d702-4aca-91ac-5490c75934a6"
      unitRef="U_pure">0.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum>
    <ssti:IncreaseInCommonStockCapitalSharesReservedForFutureIssuance
      contextRef="C_8cb7d674-0eec-453a-ab60-6d6b89523255"
      decimals="INF"
      id="F_2fe3d6db-d338-4538-9e3b-542ddd3bb624"
      unitRef="U_shares">631724</ssti:IncreaseInCommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum
      contextRef="C_da16747c-e84d-413d-8f6d-ae00ad01f35f"
      decimals="2"
      id="F_c8b7505d-927f-407a-a169-3ee3a3b55d52"
      unitRef="U_pure">0.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum>
    <us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_641130dc-2aae-4137-80d8-357ac7ddc00a">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;A summary of restricted stock unit (&#x201c;RSU&#x201d;) activities under the 2017 Plan during the &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;six months ended June 30, 2025 is as follows:&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:46.589%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.54%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:15.703%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.02%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.063%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:2.02%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:13.063%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Number&lt;br/&gt;of RSUs&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Grant Date Fair Value per RSU&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Aggregate Fair Value of RSUs Vested (in thousands)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Unvested RSUs at December 31, 2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;966,131&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19.04&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Granted&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,852,388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16.10&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Vested&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;174,891&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;19.83&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,785&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Forfeited&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;(&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;50,647&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;)&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16.89&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Unvested RSUs at June 30, 2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,592,981&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;16.93&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:middle;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfNonvestedRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="C_41e5a601-8395-4d04-877b-e251abf8096e"
      decimals="INF"
      id="F_c08bf560-82be-49ed-9170-851a32ea3823"
      unitRef="U_shares">966131</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="C_41e5a601-8395-4d04-877b-e251abf8096e"
      decimals="2"
      id="F_c538580f-b6ca-4579-86be-3f59b9d31c8a"
      unitRef="U_USDollarShare">19.04</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c"
      decimals="INF"
      id="F_2a0a8f1f-cd01-4d27-ac7d-53900e3b36c1"
      unitRef="U_shares">1852388</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c"
      decimals="2"
      id="F_55afb516-1b56-4f2d-94ff-197169ac1ea9"
      unitRef="U_USDollarShare">16.1</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c"
      decimals="INF"
      id="F_1b8415bc-c30a-42ed-9865-b5ada749ff21"
      unitRef="U_shares">174891</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c"
      decimals="2"
      id="F_a73fb7fb-af1e-4f2b-8575-43070dea8d2f"
      unitRef="U_USDollarShare">19.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c"
      decimals="-3"
      id="F_6a77e3e2-9ab4-44e2-b88a-9847f3a956e5"
      unitRef="U_USD">2785000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c"
      decimals="INF"
      id="F_eb534572-9d18-4c68-845a-1f798b941af2"
      unitRef="U_shares">50647</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="C_18d85c3a-7f8b-459f-bd8c-303adaad6a8c"
      decimals="2"
      id="F_83c776a0-d13f-4277-8ead-6c586ff49def"
      unitRef="U_USDollarShare">16.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="C_f9f6333b-04ec-42ae-9629-1ce4a459849a"
      decimals="INF"
      id="F_774f7d30-1191-4349-8c2e-41f552237625"
      unitRef="U_shares">2592981</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="C_f9f6333b-04ec-42ae-9629-1ce4a459849a"
      decimals="2"
      id="F_042e328f-0c79-43c7-90d1-85121e57edfd"
      unitRef="U_USDollarShare">16.93</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_91b2ce07-dfb6-4e6c-9d04-b6c524a9e011"
      decimals="INF"
      id="F_bdf99d81-1c45-4ad2-b86c-f956a15f5fa8"
      unitRef="U_shares">544228</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_91b2ce07-dfb6-4e6c-9d04-b6c524a9e011"
      decimals="2"
      id="F_d5de596f-a3d9-4a7e-a866-fb1ef7d1ec30"
      unitRef="U_USDollarShare">17.74</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_4365f23e-26c5-4839-ad78-f15badd94069"
      decimals="-5"
      id="F_e76bf2f8-95e2-4cbf-ba83-236d601165fa"
      unitRef="U_USD">200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_c64f7f46-cb61-4369-9fc6-b7afa2f18503"
      decimals="-5"
      id="F_8b011dcd-1588-4537-84b5-0ddf5b0c0cc1"
      unitRef="U_USD">300000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_b3eb17b9-bc0f-444d-aa79-2e6620582d94"
      decimals="-5"
      id="F_7fdcbc2a-63d6-4613-9575-0ef932860fbc"
      unitRef="U_USD">500000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_dd1e3ab7-23ba-44dc-87b4-76262ae7986f"
      decimals="-5"
      id="F_6ff10be9-d9cd-4da4-a8db-7d917a1f61ea"
      unitRef="U_USD">400000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_b3eb17b9-bc0f-444d-aa79-2e6620582d94"
      decimals="INF"
      id="F_2158bf4a-318a-42b9-bc28-c7e10b4fded3"
      unitRef="U_shares">813348</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_b3eb17b9-bc0f-444d-aa79-2e6620582d94"
      decimals="2"
      id="F_715ada71-8bd0-4815-b6db-07968fc692af"
      unitRef="U_USDollarShare">16.43</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <ssti:Share-BasedPaymentArrangementExpenseAfterTargetAchievement
      contextRef="C_c3ed7e52-b29e-4543-a3e9-89ca9620a19d"
      decimals="-6"
      id="F_d4f2b496-0486-412c-82a9-06d6cfc1a5de"
      unitRef="U_USD">0</ssti:Share-BasedPaymentArrangementExpenseAfterTargetAchievement>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_38ec3cda-b94f-4571-bc72-ff12471e4a3e"
      decimals="INF"
      id="F_3f300367-ae97-42e4-a26f-a7e82985be97"
      unitRef="U_shares">133261</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_38ec3cda-b94f-4571-bc72-ff12471e4a3e"
      decimals="2"
      id="F_c346329b-05ae-43d8-825d-c2d52fd8abb1"
      unitRef="U_USDollarShare">15.12</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_15e7cb42-5ba0-4619-9a77-488368df9c29"
      decimals="-5"
      id="F_3f49efe3-feb2-4b62-81e6-0fc5eafec4e9"
      unitRef="U_USD">400000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_68af483f-b9d5-413f-88c0-157eae19d9f0"
      decimals="-5"
      id="F_8f511f82-bf8c-457e-a96b-6c9bc4d92367"
      unitRef="U_USD">800000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="C_68af483f-b9d5-413f-88c0-157eae19d9f0"
      decimals="INF"
      id="F_6fdc9606-7cc9-48f5-ab5a-9cb649340cfb"
      unitRef="U_shares">448222</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="C_68af483f-b9d5-413f-88c0-157eae19d9f0"
      decimals="2"
      id="F_1d1476c2-249b-4277-8092-9964ca64eca1"
      unitRef="U_USDollarShare">15.51</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="C_68af483f-b9d5-413f-88c0-157eae19d9f0"
      decimals="-5"
      id="F_f91b104e-a659-453e-9150-cbf6c3125f6f"
      unitRef="U_USD">300000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate
      contextRef="C_02ead27e-6a8e-41d6-ae28-361e2f9ec745"
      decimals="2"
      id="F_ecbdc9de-2b91-470f-8374-c29c1ccf351e"
      unitRef="U_pure">0.15</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_5fa01a62-3e02-4272-bff6-8521c98028ed">The 2017 ESPP provides for a six-month offering period. At the end of the purchase period, eligible employees are permitted to purchase shares of common stock at the lower of 85% of the fair market value at the beginning or end of the offering period subject to tax limitations on the total value of the purchase.</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward>
    <ssti:EmployeeStockPurchasePlanOfferingPeriod
      contextRef="C_222eed63-1852-43c2-aeb8-370555ad7df7"
      id="F_52e495b3-d92c-4419-906e-0899f79bf87c">P6M</ssti:EmployeeStockPurchasePlanOfferingPeriod>
    <ssti:CommonStockFairMarketValuePercentage
      contextRef="C_222eed63-1852-43c2-aeb8-370555ad7df7"
      decimals="2"
      id="F_3784686c-12e8-4e62-904a-530e6ebe9781"
      unitRef="U_pure">0.85</ssti:CommonStockFairMarketValuePercentage>
    <ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod
      contextRef="C_222eed63-1852-43c2-aeb8-370555ad7df7"
      id="F_4427cb98-46ed-4b94-945b-9941a2314da5">--01-01</ssti:SharesOfCommonStockReservedForIssuanceAutomaticAnnualIncreaseInitiationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum
      contextRef="C_efdaef5b-5b12-4dca-b5b7-438ed2bd600c"
      decimals="2"
      id="F_6d5a54c4-8f63-4caa-b183-86a22cac64bf"
      unitRef="U_pure">0.02</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum>
    <ssti:PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance
      contextRef="C_efdaef5b-5b12-4dca-b5b7-438ed2bd600c"
      decimals="INF"
      id="F_48fcadfc-1ff3-403c-b3dd-95f0ab2faa9e"
      unitRef="U_shares">150000</ssti:PeriodicIncrementOfCommonStockCapitalSharesReservedForFutureIssuance>
    <ssti:IncreaseInCommonStockCapitalSharesReservedForFutureIssuance
      contextRef="C_b82221ba-d305-4d5c-b5d9-f782b830a474"
      decimals="INF"
      id="F_62399249-6954-466e-ac14-ee561408ce40"
      unitRef="U_shares">150000</ssti:IncreaseInCommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_90943963-1fc8-47fa-acc9-9f432c2a771d">&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Total stock-based compensation expense associated with the 2005 Plan, 2017 Plan and 2017 ESPP is recorded in the condensed consolidated statements of operations and was allocated as follows (in thousands):&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;
       &lt;table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;"&gt;
        &lt;tr style="visibility:collapse;"&gt;
         &lt;td style="width:39.4%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1.64%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:11.92%;box-sizing:content-box;"&gt;&lt;/td&gt;
         &lt;td style="width:1%;box-sizing:content-box;"&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="6" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;Six Months Ended June 30,&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2025&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td colspan="2" style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-kerning:none;min-width:fit-content;"&gt;2024&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;text-align:left;"&gt;&lt;p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Cost of revenues&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;620&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;399&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,268&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;839&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Sales and marketing&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;574&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;584&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,165&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,185&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Research and development&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;444&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;303&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;837&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;605&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;background-color:#ffffff;word-break:break-word;"&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;General and administrative&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;2,203&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;1,860&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,975&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,444&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.5pt solid #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="height:10pt;word-break:break-word;"&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;text-indent:5pt;white-space:pre-wrap;padding-left:0in;vertical-align:top;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="margin-left:0.92%;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,841&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;3,146&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;7,245&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#ffffff;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="color:#000000;font-kerning:none;min-width:fit-content;"&gt;$&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:pre-wrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #000000;padding-right:0.01in;text-align:center;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-kerning:none;min-width:fit-content;"&gt;6,073&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
         &lt;td style="background-color:#cff0fc;padding-top:0.01in;white-space:nowrap;padding-left:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:2.25pt double #ffffff03;padding-right:0.01in;"&gt;&lt;p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"&gt;&lt;span style="font-kerning:none;min-width:fit-content;"&gt;&#160;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;
        &lt;/tr&gt;
       &lt;/table&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_0dabec57-30b9-451f-902e-82daad6dee8b"
      decimals="-3"
      id="F_0ec5d12a-0447-454a-b1ea-e5bb897fd8bf"
      unitRef="U_USD">620000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_63e472be-2a49-4250-bef6-e201d8efb971"
      decimals="-3"
      id="F_9648d9bf-1f1d-455d-a77a-652842eae0d1"
      unitRef="U_USD">399000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_d8c8ff70-8c1e-4636-90df-209e9bb41ad1"
      decimals="-3"
      id="F_e40d41e2-f684-4283-ad89-7756d4d1a429"
      unitRef="U_USD">1268000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_dc085326-df1d-4bca-869c-7c0666de4fd2"
      decimals="-3"
      id="F_4d7f2192-3169-4964-944a-9b99f7b581e4"
      unitRef="U_USD">839000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_7ad02a42-8716-4e47-aea3-54300690d968"
      decimals="-3"
      id="F_86779b98-1e64-4032-9de4-44c7cfa90e4b"
      unitRef="U_USD">574000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_6a162941-7409-4632-9530-98f1f94edcd2"
      decimals="-3"
      id="F_1fb4561c-c14f-4e92-a86c-633796a8a37a"
      unitRef="U_USD">584000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_b649e2f3-5249-49cc-b349-177bc0b70dd6"
      decimals="-3"
      id="F_56b443d3-86c3-461c-8599-f81d55bded58"
      unitRef="U_USD">1165000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_5181a2e5-f233-48ac-a043-77203cfb9c0c"
      decimals="-3"
      id="F_de50465d-3cb7-4ec8-a83e-fa1b70aca71b"
      unitRef="U_USD">1185000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_6708ae2b-8c97-48c1-8004-36c3543b88a1"
      decimals="-3"
      id="F_75e40908-2698-4a70-a8ef-94177a8f1656"
      unitRef="U_USD">444000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_a5b46cc5-ee75-4f78-b9e3-5924c08e8bcd"
      decimals="-3"
      id="F_dd3345e9-1228-43ec-b594-312bae09fcfc"
      unitRef="U_USD">303000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_b84ef990-8fc4-434e-9a91-9580c5f0e626"
      decimals="-3"
      id="F_77d36835-92cb-4163-8fe7-d907a8c4610e"
      unitRef="U_USD">837000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_4b28ba2d-f633-4bdf-8f0a-fb61e710f0f4"
      decimals="-3"
      id="F_9e7cd4c5-8465-4eac-ac86-b3e787970dc5"
      unitRef="U_USD">605000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_aecffb60-0955-4065-8e23-f7b6c6ef8220"
      decimals="-3"
      id="F_8f4727ef-0c8e-44a5-b2fc-96b4199b004c"
      unitRef="U_USD">2203000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_9ea62ede-f893-4a0d-9933-f4ac1f5f184f"
      decimals="-3"
      id="F_3eb12e09-d1a9-4cde-bdaf-51e5daec3f3e"
      unitRef="U_USD">1860000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_c7befd02-2694-424b-99d9-0515fa4da0f4"
      decimals="-3"
      id="F_544f2ee2-a329-4487-a981-c5fa2a1038ef"
      unitRef="U_USD">3975000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_3ead49f6-7b56-492b-ae09-7a3382b38dc5"
      decimals="-3"
      id="F_e4db62cc-f914-4769-a793-a4d3c5b53928"
      unitRef="U_USD">3444000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_55761fbb-0cac-4679-a6bc-21b2b31d8283"
      decimals="-3"
      id="F_f7b4e095-5a7e-44e2-b3f2-f95fefe34f3c"
      unitRef="U_USD">3841000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_9c862cea-f98d-4386-bc50-979ceb737fa5"
      decimals="-3"
      id="F_ce9a03bf-980c-4a01-bf8a-284cfc159b99"
      unitRef="U_USD">3146000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      decimals="-3"
      id="F_74644fc9-ff00-4b2f-b523-13b563f8cafa"
      unitRef="U_USD">7245000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="C_179523cc-6537-430e-abea-d535e4dac07a"
      decimals="-3"
      id="F_f6f3082b-3e6f-480c-979e-3ae64f8771ae"
      unitRef="U_USD">6073000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_1ca64c78-a234-45ef-8cc3-4f550e1cf05c">&lt;p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 12. &lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Financing Arrangements&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company has a revolving loan facility (the &#x201c;Revolving Facility&#x201d;) under its Credit Agreement with Umpqua Bank (the &#x201c;Umpqua Credit Agreement&#x201d;) with a revolving credit commitment of $25.0 million and letter of credit sub-facility of $7.5 million, that matures on October 15, 2025.&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Any amounts outstanding under the letter of credit sub-facility reduce the amount available for the Company to borrow under the Revolving Facility. The available loan facility as of June 30, 2025 and December 31, 2024 was approximately $21.0 million, for both periods. As of June 30, 2025 and December 31, 2024, there was $4.0 million outstanding on the Company&#x2019;s line of credit, which the Company borrowed in August 2023 to partially fund the acquisition of SafePointe. The interest expense recorded for the three and six months ended June 30, 2025 was immaterial based on a weighted-average interest rates of 6.28% and 6.29%, respectively. For the three and six months ended June 30, 2024, the interest expense recorded was $0.1 million and $0.2 million, respectively. As of June 30, 2025 and December 31, 2024, the Company was in compliance with all covenants and other requirements set forth in the Umpqua Credit Agreement.&lt;/span&gt;&lt;/p&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="C_e4245d7f-a244-4565-9348-5e0d7f06fa59"
      id="F_ce64fbb2-e663-4431-ad86-b06a9ab24964">&lt;p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;Note 13. Commitments and Contingencies&lt;/span&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;  &lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;The Company may become subject to legal proceedings, as well as demands and claims that arise in the normal course of business. Such claims, even if not meritorious, could result in the expenditure of significant financial and management resources. The Company makes a provision for a liability relating to legal matters when it is both probable that a liability has been incurred and the amount of the loss can be reasonably estimated. These provisions are reviewed and adjusted to include the impacts of negotiations, estimated settlements, legal rulings, advice of legal counsel, and other information and events pertaining to a particular matter.&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"&gt;&lt;span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-kerning:none;min-width:fit-content;"&gt;An unfavorable outcome on any litigation matters could require payment of substantial damages, or, in connection with any intellectual property infringement claims, could require the Company to pay ongoing royalty payments or could prevent the Company from selling certain of its products. As a result, a settlement of, or an unfavorable outcome on, any of the matters referenced above or other litigation matters could have a material adverse effect on the Company&#x2019;s business, operating results, financial condition and cash flows.&lt;/span&gt;&lt;/p&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
